228 Commits

Author SHA1 Message Date
Alan Bateman
001ebb3a72 8142968: Module System implementation
Initial integration of JEP 200, JEP 260, JEP 261, and JEP 282

Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Jonathan Gibbons <jonathan.gibbons@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Mark Reinhold <mark.reinhold@oracle.com>
Co-authored-by: Jan Lahoda <jan.lahoda@oracle.com>
Co-authored-by: Vicente Romero <vicente.romero@oracle.com>
Co-authored-by: Andreas Lundblad <andreas.lundblad@oracle.com>
Co-authored-by: Andrey Nazarov <andrey.x.nazarov@oracle.com>
Co-authored-by: Chris Hegarty <chris.hegarty@oracle.com>
Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com>
Co-authored-by: Kumar Srinivasan <kumar.x.srinivasan@oracle.com>
Co-authored-by: Sundararajan Athijegannathan <sundararajan.athijegannathan@oracle.com>
Reviewed-by: jjg, jlahoda, vromero, mcimadamore, bpatel, ksrini, darcy, anazarov, dfuchs
2016-03-17 19:04:28 +00:00
Vicente Romero
286b0caa6c 8148808: javac, remove unused options, step 1
Reviewed-by: mcimadamore, jjg
2016-02-10 15:11:40 -08:00
Maurizio Cimadamore
c7c54cf62a 8148128: Regression: array constructor references marked as inexact
Missing check in constructor reference stuckness check

Reviewed-by: vromero
2016-01-26 12:11:55 +00:00
Maurizio Cimadamore
e782acbf37 8147546: regression when type-checking generic calls inside nested declarations occurring in method context
Attr.visitClassDef should set a temporary ArgumentAttr cache when in speculative mode

Reviewed-by: vromero
2016-01-20 10:53:29 +00:00
Dan Smith
cbaccb91f0 8143852: Implement type variable renaming for functional interface most specific test
Reviewed-by: mcimadamore, vromero
2016-01-08 17:02:29 -07:00
Maurizio Cimadamore
1e3900cbfb 8142876: Javac does not correctly implement wildcards removal from functional interfaces
Rewrite code for removing wildcard from target functional interface to be in sync with JLS 9.9

Reviewed-by: vromero, dlsmith
2015-12-17 12:29:26 +00:00
Vassili Igouchkine
9c33078299 8145342: Some copyright notices are inconsistently and ill formatted
Adjusted formatting of copyright notices.

Reviewed-by: darcy, alundblad
2015-12-14 20:18:19 +01:00
Srikanth Adayapalam
bf65927c33 8145051: Wrong parameter name in synthetic lambda method leads to verifier error
Synthetic names manufactured by the compiler should not contain '.'

Reviewed-by: mcimadamore
2015-12-10 17:24:59 +05:30
Vicente Romero
92c2d20bcc 8136809: Javac fails compiling Collectors.reducing with method reference combiner
Reviewed-by: mcimadamore
2015-12-09 12:50:41 -08:00
Srikanth Adayapalam
bda66e0df0 8144673: Suspect message regarding suitable enclosing instance not being in scope
Javac incorrectly complains about missing enclosing instance while handling method references.

Reviewed-by: vromero
2015-12-08 04:59:19 +05:30
Srikanth Adayapalam
68126c8ee9 8143647: Javac compiles method reference that allows results in an IllegalAccessError
Lambda implementation method synthesized by javac should not mention inaccessible types.

Reviewed-by: mcimadamore
2015-11-26 07:44:23 +05:30
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