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
Maurizio Cimadamore
ec458693f7
8012003: Method diagnostics resolution need to be simplified in some cases
...
Unfold method resolution diagnostics when they mention errors in poly expressions
Reviewed-by: jjg, vromero
2013-05-15 14:00:31 +01:00
Robert Field
c51505263f
8012556: Implement lambda methods on interfaces as static
...
8006140: Javac NPE compiling Lambda expression on initialization expression of static field in interface
Lambdas occurring in static contexts or those not needing instance information should be generated into static methods. This has long been the case for classes. However, as a work-around to the lack of support for statics on interfaces, interface lambda methods have been generated into default methods. For lambdas in interface static contexts (fields and static methods) this causes an NPE in javac because there is no 'this'. MethodHandles now support static methods on interfaces. This changeset allows lambda methods to be generated as static interface methods. An existing bug in Hotspot (8013875) is exposed in a test when the "-esa" flag is used. This test and another test that already exposed this bug have been marked with @ignore.
Reviewed-by: mcimadamore
2013-05-14 11:11:09 -07:00
Robert Field
136b4bc9b2
8014023: When a method reference to a local class constructor is contained in a method whose number of parameters matches the number of constructor parameters compilation fails
...
Reviewed-by: mcimadamore
2013-05-07 06:39:34 -07:00
Jonathan Gibbons
155bd74411
8012728: Normalize @ignore comments on langtools tests
...
Reviewed-by: vromero, mcimadamore
2013-05-03 09:56:56 -07:00
Robert Field
0ab1bb68cc
8011591: BootstrapMethodError when capturing constructor ref to local classes
...
Reviewed-by: mcimadamore
2013-05-01 08:46:04 -07:00
Maurizio Cimadamore
8b680bdde2
8011392: Missing checkcast when casting to intersection type
...
Javac should emit a checkcast for each additional target type specified in an intersection type cast
Reviewed-by: jjg
2013-04-15 14:17:30 +01:00