217 Commits

Author SHA1 Message Date
Maurizio Cimadamore
875bccb11e 8067767: type inference performance regression
Overhaul implememntation of inference incorporation

Reviewed-by: vromero
2015-11-19 16:43:11 +00:00
Srikanth Adayapalam
54029caa26 8143217: javac throws NPE when printing diagnostics for Lambda expressions
Fix compiler crash when -XDdumpLambdaToMethodStats option is in effect.

Reviewed-by: mcimadamore
2015-11-19 17:19:06 +05:30
Maurizio Cimadamore
3acf9da9d1 8142948: langtools/test/tools/javac/lambda/speculative/T8046685.java fails on some platforms
Test uses too much stack on 32-bit platforms

Reviewed-by: jlahoda
2015-11-13 18:45:38 +00:00
Srikanth Adayapalam
b79126e437 8073616: Duplicate error message: cannot inherit from final (class) F
Ensure that the compiler does not emit duplicate errors at slightly different source positions.

Reviewed-by: mcimadamore
2015-11-13 18:09:36 +05:30
Maurizio Cimadamore
90a76d40e5 8046685: Uncompilable large expressions involving generics
Improve inference propagation logic so that unnecessary inference variables are not propagated.

Reviewed-by: vromero
2015-11-13 12:29:23 +00:00
Srikanth Adayapalam
f7bc90496a 8142476: Call site initialization exception caused by LambdaConversionException: Invalid receiver type
Incorrect handling of intersection typed receiver in method references results in call site initialization exception

Reviewed-by: mcimadamore
2015-11-12 05:59:47 +05:30
Srikanth Adayapalam
7ea18e2abd 8141508: java.lang.invoke.LambdaConversionException: Invalid receiver type
Incorrect handling of intersection type parameter of functional interface descriptor results in call site initialization exception

Reviewed-by: mcimadamore
2015-11-11 18:46:03 +05:30
Srikanth Adayapalam
4d94dba613 8129740: Incorrect class file created when passing lambda in inner class constructor
Lambda implementation method must be static when lambda is an argument to an explicit constructor call.

Reviewed-by: mcimadamore, jlahoda
2015-11-09 05:45:22 +05:30
Srikanth Adayapalam
48e3b3f0df 8138612: Do not retain declaration annotations on lambda formal parameters
Reviewed-by: jlahoda
2015-11-06 14:45:44 +05:30
Srikanth Adayapalam
08b811e8d6 8139836: Can't use super::x method reference when x is protected
Javac incorrectly diasllows reference to a protected method from a super class in method reference expressions.

Reviewed-by: mcimadamore
2015-10-20 15:25:41 +05:30
Srikanth Adayapalam
ac4f8dfdd2 8139245: compiler crashes with exception on int:new method reference and generic method inference
Reviewed-by: mcimadamore
2015-10-12 19:43:44 +05:30
Srikanth Adayapalam
1a5c52e6c3 8130506: javac AssertionError when invoking MethodHandle.invoke with lambda paramter
Reviewed-by: mcimadamore
2015-10-07 15:53:38 +05:30
Maurizio Cimadamore
981c6dc298 8078093: Severe compiler performance regression Java 7 to 8 for nested method invocations
Add infrastructure to avoid combinatorial explosion of method argument attributions

Reviewed-by: jlahoda, vromero, dlsmith
2015-09-15 13:43:44 +01:00
Maurizio Cimadamore
2f46e61a83 8129962: Investigate performance improvements in langtools combo tests
New combo API that runs all combo instances in a shared javac context (whenever possible).

Reviewed-by: jjg, jlahoda, vromero
2015-08-31 17:33:34 +01:00
Andreas Lundblad
8d0ebb66bd 8133671: langtools tests have bad license
Dropped classpath exception from copyright notice in tests.

Reviewed-by: jjg
2015-08-26 09:02:02 +02:00
Aleksey Shipilev
d2e6717c87 8134329: TeeOpTest.java fails across platforms after fix for JDK-8129547
Wrong indexes associated to CONSTANT_InvokeDynamic_info entries.

Reviewed-by: sundar
2015-08-25 15:10:25 +01:00
Vicente Romero
8a2078e8a3 8053906: javac is accepting a self-referencing variable initializer inside a lambda expression
Reviewed-by: jlahoda
2015-08-10 18:10:18 -07:00
Maurizio Cimadamore
7baee75969 8131742: Syntactically meaningless code accepted by javac
Receiver parameter logic for type annotations should be disabled when parsing lambda formals

Reviewed-by: jlahoda
2015-07-30 13:24:35 +01:00
Srikanth Adayapalam
63b337e82e 8076538: Verify error at runtime due to incorrect classification of a lambda as being instance capturing
Reviewed-by: mcimadamore
2015-06-23 17:46:23 +05:30
Srikanth Adayapalam
1a5f839adc 8077667: 'variable may not have been initialized' error for parameter in lambda function
JDK-8077667: Fix bogus diagnostic about lambda parameter not being initialized

Reviewed-by: mcimadamore
2015-05-30 06:17:50 +05:30
Srikanth Adayapalam
4815781a4a 8081271: NPE while compiling a program with erroneous use of constructor reference expressions
Missing enclosing instance error should not be swallowed when attributing constructor reference expressions.

Reviewed-by: mcimadamore, vromero
2015-05-29 09:15:42 +05:30
Mandy Chung
ab120497cf 8074432: Move jdeps and javap to jdk.jdeps module
Reviewed-by: jjg, alanb, erikj
2015-05-27 13:25:18 -07:00
Alexander Kulyakhtin
b6262441ad 8076543: Add @modules as needed to the langtools tests
Reviewed-by: jjg, shurailine
2015-05-21 11:41:04 -07:00
Jan Lahoda
1867d1a236 8080338: Incorrect GPL header causes RE script to miss swap to commercial header for licensee source bundle
8080339: Incorrect GPL header causes RE script to miss swap to commercial header for licensee source bundle
8080340: Incorrect GPL header causes RE script to miss swap to commercial header for licensee source bundle

Fixing incorrect file headers; also reviewed by kevin.l.brown@oracle.com

Reviewed-by: vromero
2015-05-18 09:27:09 +02:00
Jan Lahoda
b97b136530 8077605: Initializing static fields causes unbounded recursion in javac
Improving detection of potential constant variable initializers; preventing infinite recursion on exception during Attr.visitLambda.

Reviewed-by: mcimadamore, vromero
2015-04-27 16:31:29 +02:00
Vicente Romero
4693c79e67 8078433: javac, some tests are failing after JDK-8078024 because of golden files mismatch
Reviewed-by: darcy
2015-04-22 11:39:06 -07:00
Vicente Romero
8c8261cbad 8078024: javac, several incorporation steps are silently failing when an error should be reported
Reviewed-by: mcimadamore
2015-04-22 09:44:15 -07:00
Andrey Nazarov
15d5184652 8075752: jdk.compiler dependency can be eliminated in MethodReferenceNullCheckTest.java
Reviewed-by: jjg
2015-03-30 16:38:59 +01:00
Srikanth Adayapalam
8afd89977c 8062373: Project Coin: diamond and anonymous classes
Allow diamond inference in combination with anonymous class instance creation

Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: mcimadamore, vromero
2015-03-30 17:09:14 +05:30
Vicente Romero
38527cecd5 8075184: javac is mistakenly considering an missing enclosing instance error as an overload error
Reviewed-by: mcimadamore
2015-03-27 10:11:21 -07:00
Jan Lahoda
31a45d5c86 8054220: Debugger doesn't show variables *outside* lambda
8058227: Debugger has no access to outer variables inside Lambda

Put local variables captured by lambda into the lambda method's LocalVariableTable.

Reviewed-by: mcimadamore, rfield
2015-03-26 11:34:50 +01:00
Maurizio Cimadamore
c03dd06d9a 8074381: java.lang.AssertionError during compiling
Add extra functional interface check to prevent crash during code generation

Reviewed-by: vromero
2015-03-19 11:39:36 +00:00
Maurizio Cimadamore
7b2bf7805a 8073842: Invalid method reference when referencing a method on a wildcard type
Method rteference lookup logic doesn't skip type-variables as required by javac.

Reviewed-by: jlahoda
2015-02-27 18:20:33 +00:00
Srikanth Adayapalam
31b752c691 8073201: Incorrect @bug annotation in checkin for JDK-8069545
Reviewed-by: mcimadamore
2015-02-16 19:14:18 +05:30
Srikanth Adayapalam
cb2a21c5a5 8069545: javac shouldn't check nested stuck lambdas during overload resolution
Nested lambdas should not be considered while overload resolution is in progress

Co-authored-by: Vicente Romero <vicente.romero@oracle.com>
Reviewed-by: mcimadamore
2015-02-12 10:16:19 +05:30
Maurizio Cimadamore
dbe88a2ef1 8072445: tools/javac/lambda/MethodReference55.java fails across platforms
Remove copyright from test header

Reviewed-by: jlahoda
2015-02-05 18:51:09 +00:00
Srikanth Adayapalam
25c0dd9958 8071310: Tests missing for checkin for JDK-8046977
Reviewed-by: jlahoda
2015-01-22 09:50:03 +01:00
Joel Borggrén-Franck
4b78cb3eb7 8070507: LambdaLambdaSerialized can fail in -agentvm mode
Reviewed-by: mcimadamore
2015-01-21 19:02:20 +01:00
Maurizio Cimadamore
82db21e08d 8068995: Cleanup method reference lookup code
Simplify method reference code lookup and generate better/more uniform diagnostics

Reviewed-by: vromero
2015-01-15 13:58:11 +00:00
Srikanth Adayapalam
5cb253a2e9 8068254: Method reference uses wrong qualifying type
Generated code fails with IllegalAccessError due to compiler's mishandling of packageprivate classes in method reference expressions.

Reviewed-by: rfield, mcimadamore
2015-01-13 10:32:19 +01:00
Maurizio Cimadamore
c269c9451b 8066974: Compiler doesn't infer method's generic type information in lambda body
Add loghic to avoid post-inference triggers on temporarty AST types

Reviewed-by: jlahoda, vromero
2014-12-18 13:21:44 +00:00
Maurizio Cimadamore
41070244c9 8067792: Javac crashes in finder mode with nested implicit lambdas
Revert tree changes occurred in Attr before running the analyzer

Reviewed-by: jlahoda
2014-12-17 16:47:56 +00:00
Jan Lahoda
627ce960f5 8067422: Lambda method names are unnecessarily unstable
Lambda method numbers are now assigned per class for non-serializable lambdas.

Reviewed-by: mcimadamore, rfield
2014-12-17 12:49:57 +01:00
Maurizio Cimadamore
eb3798a14a 8067663: Add bugId to tests that have been modified as part of JDK-8064365
Add missing bug id to modified tests

Reviewed-by: jlahoda
2014-12-16 13:44:22 +00:00
Maurizio Cimadamore
3076062240 8064365: Better support for finder capabilities in target-typing context
Add new framework to allow for easy creation of finder-like capabilities.

Reviewed-by: jjg, jlahoda
2014-12-12 18:07:24 +00:00
Jan Lahoda
59b3453845 8061549: Disallow _ as a one-character identifier
Underscore is no longer a one-charater identifier with -source 9

Reviewed-by: mcimadamore, jjg
2014-12-08 18:02:07 +01:00
Robert Field
634c33938c 8058112: Invalid BootstrapMethod for constructor/method reference
Bridge method references with functional interface method parameters of intersection type

Reviewed-by: vromero, dlsmith
2014-11-24 14:52:46 -08:00
Vicente Romero
60113dc1ba 8063052: Inference chokes on wildcard derived from method reference
Reviewed-by: mcimadamore
2014-11-20 14:05:39 -08:00
Jonathan Gibbons
a75d2dbd39 8062676: Tests which leak lots of file managers should be fixed (group 2)
Reviewed-by: darcy
2014-11-05 19:12:45 -08:00
Jonathan Gibbons
8bd23f1681 8062348: langtools tests should close file manager (group 1)
Reviewed-by: darcy
2014-10-29 17:25:23 -07:00