179 Commits

Author SHA1 Message Date
Vicente Romero
027b935c1b 8024809: javac, some lambda programs are rejected by flow analysis
Reviewed-by: jjg, dlsmith
2013-10-19 17:43:09 +01:00
Jonathan Gibbons
cf30c20337 8026749: Missing LV table in lambda bodies
Reviewed-by: vromero, jlahoda
2013-10-18 15:03:34 -07:00
Jonathan Gibbons
ef68cc1fc1 8026704: Build failure with --enable-debug
Reviewed-by: ksrini
2013-10-16 10:47:21 -07:00
Vicente Romero
1868655b89 8024947: javac should issue the potentially ambiguous overload warning only where the problem appears
Reviewed-by: jjg
2013-10-15 21:02:21 +01:00
Vicente Romero
53cc43916a 8025816: javac crash with method reference with a type variable as the site
Reviewed-by: jjg
2013-10-15 19:36:45 +01:00
Jonathan Gibbons
0837163643 8025998: Missing LV table in lambda bodies
Reviewed-by: vromero
2013-10-14 23:07:43 -07:00
Robert Field
a8e63b82f1 8012557: Implement lambda methods on interfaces as private
8016320: Method reference in subinterface of type I.super::foo produces exception at runtime

Now that the VM supports interface instance private methods, lambda methods and lambda bridges are always private. Access is now through invokespecial.

Reviewed-by: vromero, jlahoda
2013-10-10 23:26:56 -07:00
Robert Field
9a6f8e8463 8025548: langtools test tools/javac/lambda/methodReference/BridgeMethod.java incorrectly assumes no other methods generated in lambda class
Reviewed-by: vromero
2013-09-27 13:06:38 -07:00
Vicente Romero
cae732b133 8024497: crash returning this-referencing lambda from default method
Reviewed-by: jjg, rfield
2013-09-27 10:24:56 +01:00
Sonali Goel
e60e01be01 8011738: Write test to check for bootstrap attributes for lambda expressions in class file
Reviewed-by: mcimadamore
2013-09-26 15:04:15 -07:00
Andreas Lundblad
48774216f2 6386236: Please rename com.sun.tools.javac.util.ListBuffer.lb()
Static factory method ListBuffer.lb removed. Replaced by constructor calls.

Reviewed-by: jfranck, jjg
2013-09-23 10:42:38 +02:00
Vicente Romero
70e873ec73 8024696: Missing null check in bound method reference capture
Reviewed-by: jjg, briangoetz
2013-09-22 12:53:03 +01:00
Vicente Romero
204f4422ba 8023558: Javac creates invalid bootstrap methods for complex lambda/methodref case
Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: jjg
2013-09-12 22:40:29 +01:00
Andreas Lundblad
fae7d60062 8005222: Fixed bugs should have tests with bugid in @bug tag
Reviewed-by: jfranck, jjg
2013-09-10 13:47:51 +02:00
Jan Lahoda
a9e5e17bd2 8019521: Enhanced rethrow disabled in lambdas
Fixing effectively final detection inside lambdas, small cleanup related to thrown types detection in lambdas

Reviewed-by: mcimadamore, jjg
2013-09-09 23:13:45 +02:00
Brian Goetz
b03e5fc290 8015322: Javac template test framework
Putback of the javac template test framework from the Lambda repository

Reviewed-by: jjg
2013-09-09 17:11:55 -04:00
Vicente Romero
1704a9454c 8024154: Fix for 8016177: structural most specific and stuckness breaks 6 langtools tests
Reviewed-by: jjg, jfranck
2013-09-09 16:32:08 +01:00
Maurizio Cimadamore
4cc7a55aab 8023549: Compiler emitting spurious errors when constructor reference type is inferred and explicit type arguments are supplied
Reviewed-by: jjg, vromero
2013-09-04 00:01:05 +01:00
Maurizio Cimadamore
06caeea3d6 8023389: Javac fails to infer type for lambda used with intersection type and wildcards
Reviewed-by: jjg, vromero
2013-09-03 23:31:33 +01:00
Maurizio Cimadamore
0382c78ff1 8016177: structural most specific and stuckness
Reviewed-by: jjg, vromero
2013-09-02 22:38:36 +01:00
Henry Jen
8873ff4e48 8014566: Remove @ignore tags from MethodReference66 and InInterface when 8013875 is fixed
Reviewed-by: briangoetz, jjg
2013-08-28 10:17:23 -07:00
Jan Lahoda
59e0637339 8015809: More user friendly compile-time errors for uncaught exceptions in lambda expression
Producing individual errors for uncaught undeclared exceptions inside lambda expressions, rather than one error for the whole lambda

Reviewed-by: mcimadamore
2013-08-15 22:33:43 +02:00
Maurizio Cimadamore
58d92c516a 8021567: Javac doesn't report \"java: reference to method is ambiguous\" any more
Javac incorrectly forgets about constant folding results within lambdas

Reviewed-by: jjg, vromero
2013-08-12 17:28:31 +01:00
Vicente Romero
22652f5354 8022622: javac, two tests are failing with compile time error after class Collector was modified
Reviewed-by: mcimadamore
2013-08-10 16:26:50 +01:00
Maurizio Cimadamore
da6bbaf42b 8020843: javac crashes on accessibility check with method reference with typevar receiver
Method reference overload check doesn't walk through type-variable receivers

Reviewed-by: jjg
2013-07-25 14:51:40 +01:00
Maurizio Cimadamore
663170c654 8016081: field initialized with lambda in annotation types doesn't compile
Check for annotation attributes should skip over synthetic methods

Reviewed-by: jjg
2013-07-25 14:49:16 +01:00
Maurizio Cimadamore
67362236e8 8020804: javac crashes when speculative attribution infers intersection type with array component
Assertion is causing javac to crash because of lack of support for arrays in intersection types

Reviewed-by: jjg
2013-07-25 14:47:43 +01:00
Lana Steuck
be00b8110f Merge 2013-07-17 10:40:53 -07:00
Maurizio Cimadamore
eb4e8153b3 8020147: Spurious errors when compiling nested stuck lambdas
Scope of deferred types is not copied correctly; postAttr analyzer should not run on stuck expressions

Reviewed-by: jjg
2013-07-17 14:13:15 +01:00
Maurizio Cimadamore
e92a56fade 8012238: Nested method capture and inference
8008200: java/lang/Class/asSubclass/BasicUnit.java fails to compile

Inference support should be more flexible w.r.t. nested method calls returning captured types

Reviewed-by: jjg, vromero
2013-07-17 14:11:41 +01:00
Maurizio Cimadamore
99b0413d48 8016175: Add bottom-up type-checking support for unambiguous method references
Type-checking of non-overloaded method references should be independent from target-type

Reviewed-by: jjg, vromero
2013-07-17 14:09:46 +01:00
Maurizio Cimadamore
941752ea25 8012242: Lambda compatibility and checked exceptions
Inference variables in 'throws' clause with no constraints should be inferred as RuntimeException

Reviewed-by: jjg, vromero
2013-07-17 14:04:01 +01:00
Maurizio Cimadamore
617386d568 8013404: Unclear spec for target typing with conditional operator (?:)
Fix previously ignored test

Reviewed-by: jjg, vromero
2013-07-11 15:37:02 +01:00
Robert Field
d3d1da337a 8016281: The SAM method should be passed to the metafactory as a MethodType not a MethodHandle
8020010: Move lambda bridge creation from metafactory and VM to compiler

Langtools/javac component of the bridge support and MethodType vs. MethodHandle changes.

Reviewed-by: jjg, vromero, briangoetz, forax
2013-07-11 14:07:39 +01:00
Maurizio Cimadamore
28b5759093 8016059: Cannot compile following lambda
8016060: Lambda isn't compiled with return statement

Spurious error triggered during unnecessary recovery round

Reviewed-by: jjg, vromero
2013-07-05 11:03:04 +01:00
Maurizio Cimadamore
86f630b63e 8019480: Javac crashes when method is called on a type-variable receiver from lambda expression
Logic for shortcircuiting speculative attribution doesn't handle type-variable receivers

Reviewed-by: jjg, vromero
2013-07-05 11:02:17 +01:00
Maurizio Cimadamore
7e6f7dcca5 8017618: NullPointerException in RichDiagnosticFormatter for bad input program
RDF crashes when diagnostic contains type 'void'

Reviewed-by: jjg, vromero
2013-07-05 11:00:19 +01:00
Eric McCorkle
9b1ec513d5 8013357: javac accepts erroneous binary comparison operations
Javac does not report type errors on illegal Object == primitive comparisons

Reviewed-by: abuckley, mcimadamore
2013-06-27 17:45:56 -04:00
Chris Hegarty
700804c6f2 8017045: anti-delta fix for 8013789
Reviewed-by: alanb
2013-06-19 11:48:05 +01:00
Maurizio Cimadamore
1839512a15 8013789: Compiler should emit bridges in interfaces
Paired with 8015402: Lambda metafactory should not attempt to determine bridge methods

Reviewed-by: vromero
2013-06-17 20:29:31 -07:00
Maurizio Cimadamore
80407ef47d 8013576: Add stat support to LambdaToMethod
LambdaToMethod should emit info to help diagnose/test lambda metafactory problems

Reviewed-by: jjg, vromero
2013-06-10 15:57:32 +01:00
Maurizio Cimadamore
459b2cba93 8015648: Duplicate variable in lambda causes javac crash
Missing flag in synthetic lambda blog is causing duplicates symbol to go undetected

Reviewed-by: jjg, vromero
2013-06-06 15:37:23 +01:00
Maurizio Cimadamore
abaf1a5c51 8015432: javac crashes with stack overflow when method called recursively from nested generic call
Check.checkMethod should only be called after inference has completed

Reviewed-by: jjg, vromero
2013-06-06 15:35:05 +01:00
Maurizio Cimadamore
07baf8072a 8008627: Compiler mishandles three-way return-type-substitutability
Compiler should not enforce an order in how ambiguous methods should be resolved

Reviewed-by: jjg, vromero
2013-06-06 15:33:40 +01:00
Maurizio Cimadamore
1c6a680e66 8008160: Five lambda TargetType tests have @ignore
Remove @ignore flags from tests that now pass

Reviewed-by: jjg
2013-06-04 11:31:12 +01:00
Maurizio Cimadamore
d176f2abdf 8014494: javac crashes when varargs element of a method reference is inferred from the context
Varargs element is not refreshed after type-inference

Reviewed-by: jjg, vromero
2013-05-24 15:27:27 +01:00
Vicente Romero
6a02cd46e0 8005207: test has 2 @bug tags
Reviewed-by: mcimadamore
2013-05-21 13:50:56 +01:00
Robert Field
495e78ce52 8010006: NPE in javac with interface super in lambda
Reviewed-by: mcimadamore
2013-05-15 06:53:01 -07:00
Maurizio Cimadamore
4b1aa379e5 8013222: Javac issues spurious raw type warnings when lambda has implicit parameter types
Bad warnings and position for lambda inferred parameter types

Reviewed-by: jjg, vromero
2013-05-15 14:03:09 +01:00
Maurizio Cimadamore
fc9e870275 8012685: Spurious raw types warning when using unbound method references
Spurious raw type warning when unbound method reference qualifier parameter types are inferred from target

Reviewed-by: jjg, vromero
2013-05-15 14:02:37 +01:00