Commit Graph

216 Commits

Author SHA1 Message Date
Phil Race
28e828130d Merge 2018-07-19 10:17:22 -07:00
Jan Lahoda
66025558bb 8207229: Trees.getScope crashes for broken lambda
8207230: Trees.getScope runs Analyzers

Reviewed-by: vromero
2018-07-17 14:28:56 +02:00
Joe Darcy
a376d5dab4 8207248: Reduce incidence of compiler.warn.source.no.bootclasspath in javac tests
Reviewed-by: vromero
2018-07-16 21:53:49 -07:00
Jan Lahoda
fe80e55647 8189747: JDK9 javax.lang.model.util.Elements#getTypeElement regressed 1000x in performance
Caching the results of Elements.getTypeElement/getPackageElement

Reviewed-by: darcy
2018-07-16 12:35:25 +02:00
Joe Darcy
90518f0635 8028563: Remove javac support for 6/1.6 source and target values
Reviewed-by: jjg, erikj, henryjen
2018-07-12 14:13:15 -07:00
Joe Darcy
e18f343141 8207055: Make javac -help output for -source and -target more informative
Reviewed-by: jjg
2018-07-11 16:12:18 -07:00
Jesper Wilhelmsson
dafb3af62d Merge 2018-07-11 21:41:43 +02:00
Joe Darcy
03597d010c 8206439: Remove javac -source/-target 6 from langtools regression tests
Reviewed-by: mcimadamore
2018-07-06 10:28:56 -07:00
Joe Darcy
da22bf8a17 8206114: Refactor langtools/tools/javac/classfiles/ClassVersionChecker.java
Reviewed-by: jjg
2018-07-03 16:14:46 -07:00
Joe Darcy
28e2dea71d 8206085: Refactor langtools/tools/javac/versions/Versions.java
Reviewed-by: jjg, forax, plevart, mcimadamore
2018-07-03 15:59:09 -07:00
Liam Miller-Cushon
1fc1f68c3d 8204630: Generating an anonymous class with Filer#createClassFile causes an NPE in JavacProcessingEnvironment
Reviewed-by: jlahoda
2018-07-06 12:10:43 -07:00
Jan Lahoda
eaf0364068 8205418: Assorted improvements to source code model
Improving tree positions, better error recovery, fixing Trees.getScope for possibly erroneous lambdas.

Reviewed-by: jjg, mcimadamore, vromero
2018-06-29 10:41:10 +02:00
Joe Darcy
69191fc4cc 8206083: Make tools/javac/api/T6265137.java robust to JDK version changes
Reviewed-by: jjg
2018-06-28 17:49:13 -07:00
Joe Darcy
e56162b43d 8205615: Start of release updates for JDK 12
8205621: Increment JDK version for JDK 12
8193292: Add SourceVersion.RELEASE_12
8193290: Add source 12 and target 12 to javac
8205619: Bump maximum recognized class file version to 56 for JDK 12

Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com>
Co-authored-by: Mikael Vidstedt <mikael.vidstedt@oracle.com>
Reviewed-by: alanb, smarks, jjg, mr, erikj, psandoz, dholmes
2018-06-27 21:01:12 -07:00
Jan Lahoda
152488eeee 8205913: Inconsistent source code model
Ensuring variable declarations have non-null modifiers and names.

Reviewed-by: mcimadamore
2018-06-28 10:05:43 +02:00
Jan Lahoda
2183a72fe3 8195986: Incorrect javac -h output with annotation processing and missing classes
When clearing out symbols for a new annotation processing round, preserve types when possible.

Reviewed-by: vromero
2018-06-28 10:05:39 +02:00
Jonathan Gibbons
e2064980ff 8205563: modules/AnnotationProcessing.java failed testGenerateSingleModule
Reviewed-by: darcy
2018-07-02 17:54:36 -07:00
Jan Lahoda
af4bf0927b 8203814: javac --release=8 \"cannot find symbol\" for NashornException.getEcmaError()
Updating ct.sym data for jdk.scripting.nashorn to JDK8u102 version of the API.

Reviewed-by: hannesw
2018-06-25 12:44:52 +02:00
David Holmes
95bf19563b 8010319: Implementation of JEP 181: Nest-Based Access Control
Co-authored-by: Alex Buckley <alex.buckley@oracle.com>
Co-authored-by: Maurizio Mimadamore <maurizio.mimadamore@oracle.com>
Co-authored-by: Mandy Chung <mandy.chung@oracle.com>
Co-authored-by: Tobias Hartmann <tobias.hartmann@oracle.com>
Co-authored-by: Vlaidmir Ivanov <vladimir.x.ivanov@oracle.com>
Co-authored-by: Karen Kinnear <karen.kinnear@oracle.com>
Co-authored-by: Vladimir Kozlov <vladimir.kozlov@oracle.com>
Co-authored-by: John Rose <john.r.rose@oracle.com>
Co-authored-by: Daniel Smith <daniel.smith@oracle.com>
Co-authored-by: Serguei Spitsyn <serguei.spitsyn@oracle.com>
Co-authored-by: Kumar Srinivasan <kumardotsrinivasan@gmail.com>
Co-authored-by: Boris Ulasevich <boris.ulasevich@bell-sw.com>
Reviewed-by: alanb, psandoz, mchung, coleenp, acorn, mcimadamore, forax, jlahoda, sspitsyn, abuckley
2018-06-23 01:32:41 -04:00
Jan Lahoda
51c3a9d4d1 8195077: [Testbug] tools/javac/processing/model/completionfailure/NoAbortForBadClassFile.java - AccessDeniedException
Use a new working directory for each sub-test.

Reviewed-by: vromero
2018-06-22 11:26:55 +02:00
Jonathan Gibbons
820a5618c4 8205442: Avoid hard-coding --source value in SourceLauncherTest.java
Reviewed-by: darcy
2018-06-21 14:33:15 -07:00
Jonathan Gibbons
f0b244a4ac 8196425: tools/javac/modules/AnnotationProcessing.java failed
Reviewed-by: jlahoda
2018-06-21 13:29:44 -07:00
Bernard Blaser
07012c9753 8203338: Unboxing in return from lambda miscompiled to throw ClassCastException
Reviewed-by: mcimadamore, vromero
2018-06-20 10:01:49 -07:00
Maurizio Cimadamore
43248585b4 8195293: Issue more comprehensive warnings for use of \"var\" in earlier source versions
Issue warnings when 'var' used as a type name in type argument positions

Reviewed-by: jlahoda
2018-06-20 11:47:07 +01:00
Vicente Romero
58f944b75e 8205052: No compilation error thrown when no valid parameterization exists for functional interface type
Reviewed-by: mcimadamore
2018-06-19 05:22:07 -07:00
Bernard Blaser
c97262c785 8203813: javac accepts an illegal name as a receiver parameter name
Reviewed-by: vromero
2018-06-14 05:50:21 -07:00
Jan Lahoda
5bf8a6f44b 8196618: Create API to list supported values for javac --release option
8194308: jdeprscan will need updates to deal with the removal of the Java EE modules

Generalizing tests to run over all supported --release keys; fixing jdeprscan to work with --release 11.

Reviewed-by: smarks, vromero
2018-06-14 13:16:21 +02:00
Maurizio Cimadamore
da3ff94812 8178150: Regression in logic for handling inference stuck constraints
Fix broken logic for input/output inference variable dependency

Reviewed-by: vromero, bsrbnd
2018-06-14 11:13:39 +01:00
Jan Lahoda
78b7362c97 8193302: Javac AssertionError: typeSig ERROR on usage of @Generated
Importing from an invisible package whose name is a prefix of a visible package is not allowed.

Reviewed-by: vromero
2018-06-13 12:52:21 +02:00
Liam Miller-Cushon
669c2f3951 8203679: AssertionError in DeferredAttr with parenthesized method reference
Reviewed-by: mcimadamore
2018-06-11 14:06:50 -07:00
Jan Lahoda
62a6e04db0 8204674: Inconsistent lambda parameter span
Correcting parameter spans for lambda parameters.

Reviewed-by: mcimadamore
2018-06-12 12:14:46 +02:00
Jonathan Gibbons
48d64563d2 8204588: Test failures after "Launch Single-File Source-Code Programs"
Reviewed-by: mchung
2018-06-08 15:24:51 -07:00
Maurizio Cimadamore
824b2d53ac 8204610: Compiler confused by parenthesized "this" in final fields assignments
Parenthesis are not skipped consistently in DA/DU, forward reference analysis

Reviewed-by: vromero
2018-06-08 16:33:40 +01:00
Jonathan Gibbons
fe24730ed9 8201274: Launch Single-File Source-Code Programs
Reviewed-by: mcimadamore, jlahoda, ksrini, mchung, ihse, alanb
2018-06-07 16:06:49 -07:00
Jan Lahoda
8afe86a2fe 8200166: Repeating annotations refering to to-be-generated classes don't work
Reviewed-by: jjg
2018-06-05 14:55:13 +02:00
Bernard Blaser
8d24eeb394 8189335: javac exception when referencing private inner class with same name as normal class with dollar_1
Reviewed-by: vromero
2018-06-04 10:12:40 -07:00
Jan Lahoda
4dec1a457f 8198378: javac crash when checking imports and a broken class is present
Properly handling bad classfile while processing imports.

Reviewed-by: vromero
2018-06-04 12:54:13 +02:00
Vicente Romero
539b18eba0 8203892: Target interface added as marker interface in calls to altMetafactory
Reviewed-by: mcimadamore
2018-05-29 09:12:39 -07:00
Jan Lahoda
6776b453e0 8193717: Import resolution performance regression in JDK 9
Avoiding iteration through all sub-scopes of single import scope when looking up by name by only using those that may contain the given name.

Reviewed-by: mcimadamore
2018-05-29 13:17:03 +02:00
Jan Lahoda
5635d6f937 8202832: cycle detection depends on ordering of requires directives
Ensuring cyclic dependencies among modules produce a compile-time error.

Reviewed-by: vromero
2018-05-29 10:53:55 +02:00
Srinivas Dama
080269eb20 8202178: type.getKind() for var is None instead of Error
Make sure var kind != None for instance variables without initialization

Reviewed-by: mcimadamore
2018-05-27 12:00:16 +05:30
Maurizio Cimadamore
d10e29af44 8203488: Remove error generation from TransTypes
Bridge clash errors should noty be reported in TransTypes (as they are already reported in the frontend); cleanup polysig call code.

Reviewed-by: vromero, cushon, forax
2018-05-24 11:13:42 +01:00
Vicente Romero
3b38d1b418 8196048: thrown type variables should be roots in the minimum inference graph
Reviewed-by: mcimadamore
2018-05-22 09:01:44 -07:00
Jan Lahoda
c3cdecd32b 8198315: Incomplete classpath causes NPE in TransTypes
Avoid symbol completion while constructing error message.

Reviewed-by: mcimadamore
2018-05-22 12:26:17 +02:00
Maurizio Cimadamore
47d634e453 8203436: javac should fail early when emitting illegal signature attributes
Check that signature attributes do not contain non-denotable types

Reviewed-by: vromero
2018-05-22 13:37:05 +01:00
Vicente Romero
088dbd5ce8 8203486: skip type inference for non functional interface components of intersection types
Reviewed-by: mcimadamore
2018-05-21 12:27:21 -07:00
Vicente Romero
ec167413f9 8148354: Errors targeting functional interface intersection types
Reviewed-by: mcimadamore, dlsmith
2018-05-18 09:22:31 -07:00
Bernard Blaser
b416d3915e 8203398: Test test/langtools/tools/javac/options/release/ReleaseOptionCurrent.java writes into the source directory
Reviewed-by: jjg, jlahoda
2018-05-18 12:48:09 +02:00
Vicente Romero
74b151103e 8194998: broken error message for subclass of interface with private method
Reviewed-by: mcimadamore
2018-05-11 10:39:04 -07:00
Vicente Romero
3b13b81625 8202597: javac is not inducing a notional interface if Object appears in an intersection type
Reviewed-by: mcimadamore
2018-05-08 17:12:54 -07:00
Jan Lahoda
81bad1fe6b 8202387: javac --release 11 not supported
Adding historical data for JDK 10; adding ability to produce the historical data incrementally.

Reviewed-by: erikj, forax, jjg
2018-05-07 10:37:46 +02:00
Jonathan Gibbons
cf20cdd06c 8194968: problem list actions for tools/javac/jvm/VerboseOutTest
Reviewed-by: vromero
2018-05-03 12:56:53 -07:00
Bernard Blaser
7dc011ccca 8202372: Diagnostic with incorrect line info generated when compiling lambda expression
Add tree position to speculative lambda tree

Reviewed-by: vromero, jlahoda
2018-05-02 15:29:55 +01:00
Joe Darcy
15ef60b350 8200478: For boxing conversion javac uses Long.valueOf which does not guarantee caching according to its javadoc
Reviewed-by: bpb
2018-04-25 22:12:06 -07:00
Bernard Blaser
fa434f6934 8202141: Unique symbols for .class
Reviewed-by: vromero, jlahoda
2018-04-25 09:45:45 -07:00
Vicente Romero
f69402ef44 8201281: Truncated error message with Incompatible : null
Reviewed-by: mcimadamore
2018-04-24 08:13:30 -07:00
Jan Lahoda
5333f197be 8207032: Compilation succeeds without checking readability when --add-exports used
Ensuring --add-exports are only propagated when the target module reads the exporting module.

Reviewed-by: vromero, jjg
2018-07-16 16:31:33 +02:00
Jan Lahoda
d103b59ac3 8189747: JDK9 javax.lang.model.util.Elements#getTypeElement regressed 1000x in performance
Caching the results of Elements.getTypeElement/getPackageElement

Reviewed-by: darcy
2018-07-16 12:58:49 +02:00
Vicente Romero
03a10ec7b2 8196433: use the new error diagnostic approach at javac.Main
Reviewed-by: jjg
2018-04-18 16:02:53 -04:00
Maurizio Cimadamore
85fbf32898 8201554: Disable failing tier1 test for JDK-8201498
Reviewed-by: jjg
2018-04-13 11:14:49 -07:00
Maurizio Cimadamore
19581edca2 8201498: test/langtools/tools/javac/diags/CheckExamples.java 6 errors occurred
Remove duplicate class names in diagnostic examples.

Reviewed-by: jlahoda
2018-04-13 16:23:56 +01:00
Maurizio Cimadamore
d9440e4e39 8199194: Add javac support for preview features
Add support for preview features and related command line options.

Reviewed-by: jjg
2018-04-12 13:55:20 +01:00
Jan Lahoda
594fb594ce 8189765: Improve error reporting for compiling against package not visible due to modules
When looking in other modules for an undefined Symbol, also look into the unnamed module.

Reviewed-by: mcimadamore
2018-04-12 09:23:34 +02:00
Bernard Blaser
9c570aaf85 8201440: javac should create unique DynamicMethodSymbols at LambdaToMethod
Reviewed-by: mcimadamore
2018-04-11 14:52:32 -04:00
Liam Miller-Cushon
999296bab2 8201251: The tests for JDK-8187247 should be under test/langtools
Reviewed-by: darcy
2018-04-06 08:58:22 -07:00
Vicente Romero
92ec4c52a8 8199744: Incorrect compiler message for ReceiverParameter in inner class constructor
Reviewed-by: mcimadamore
2018-04-06 09:15:09 -04:00
Liam Miller-Cushon
5acbe5ff92 8201194: Handle local variable declarations in lambda deduplication
Reviewed-by: vromero
2018-04-05 14:39:04 -07:00
Martin Buchholz
5c8c67c523 8200128: Fix some "annoations" typos
Reviewed-by: alanb
2018-04-05 09:36:01 -07:00
Vicente Romero
6a2e0a5a01 8198314: javac hidden options violate standard syntax for options
Reviewed-by: jjg
2018-04-03 23:58:52 -04:00
Maurizio Cimadamore
484ec0738e 8200355: local variable inference regression test generates classfile in test folder
LVTI harness should generate files in jtreg scratch dir

Reviewed-by: vromero
2018-03-28 14:24:17 +01:00
Maurizio Cimadamore
b7e53c1204 8200199: javac suggests to use var even when var is used
Local var analyzer should use synthetic var type position to decide if analysis is needed

Reviewed-by: jlahoda, vromero
2018-03-28 14:08:26 +01:00
Liam Miller-Cushon
debaf13f38 8200301: deduplicate lambda methods
Reviewed-by: vromero, mcimadamore
2018-03-27 13:48:16 -04:00
Jan Lahoda
5bff39c04f 8196519: Incomplete classpath causes infinite recursion in Resolve.isAccessible
ErrorType.getEnclosingType returns noType rather than self.

Reviewed-by: mcimadamore, cushon
2018-03-26 11:42:17 +02:00
Shinya Yoshida
ae2d2c8ff5 8199910: Compiler crashes with -g option and variables of intersection type inferred by var
Javac should skip non-denotable types in the LocalVariableTypeTable attribute

Reviewed-by: jlahoda
2018-03-23 16:53:54 +00:00
Jan Lahoda
01509e5b5e 8194978: Javac produces dead code for try-with-resource
For try-with-resources, using simplified distinct close code for try body and catch clause, to avoid creating multiple copies of the full finally code.

Reviewed-by: mcimadamore
2018-03-22 15:28:33 +01:00
Jan Lahoda
7b9d38622b 8198552: Multiple javac plugins do not work at the same time
Fixing handling of multiple -Xplugin, -Xdoclint: and -Xdoclint/packages: parameters.

Reviewed-by: jjg, vromero
2018-03-22 12:13:08 +01:00
Jan Lahoda
b0b8a51be1 8187950: javax.lang.model APIs throws CompletionFailure or a subtype of CompletionFailure
Catching CompletionFailures that would be thrown to API clients, and re-completing the symbols again when javac itself needs it.

Reviewed-by: cushon, jjg
2018-03-09 09:42:10 +01:00
Vicente Romero
c866d037bc 8199327: nuke var type name after a lambda has been accepted
Reviewed-by: mcimadamore
2018-03-08 10:28:46 -05:00
Jonathan Gibbons
62ec6e6d1d 8186688: javax.lang.model.util.Elements.hides does not work correctly with interfaces
Reviewed-by: vromero, mcimadamore
2018-02-23 13:42:04 -08:00
Vicente Romero
25da45e26f 8198512: compiler support for local-variable syntax for lambda parameters
Reviewed-by: mcimadamore
2018-02-22 15:49:32 -05:00
Jan Lahoda
fc9a7d12a8 8198563: Test langtools/tools/javac/analyzer/AnonymousInAnonymous.java failing after JDK-8198502
Convert to lambda warning should not be provided for the tools/javac/analyzer/AnonymousInAnonymous.java test.

Reviewed-by: mcimadamore
2018-02-22 18:53:28 +01:00
Srinivas Dama
90b572b0c9 8198502: Exception at runtime due to lambda analyzer reattributes live AST
Create a deep copy of the original tree before conversion to lambda node

Reviewed-by: mcimadamore, vromero
2018-02-23 01:54:09 +05:30
Jan Lahoda
ddf6846500 8197439: Crash with -XDfind=lambda for anonymous class in anonymous class
Ensuring unresolvable anonymous classes are attributed.

Reviewed-by: mcimadamore, sadayapalam
2018-02-21 17:07:12 +01:00
Vicente Romero
4b6ab35c85 8198479: JDK build is broken by 8194892
Reviewed-by: sundar
2018-02-21 00:29:04 -05:00
Vicente Romero
2591c21c01 8194892: add compiler support for local-variable syntax for lambda parameters
Reviewed-by: mcimadamore
2018-02-20 11:45:16 -05:00
Lance Andersen
987c3a2d87 8190378: Removal of CORBA and Java EE modules
Reviewed-by: rriggs, alanb, mchung, erikj, goetz
2018-02-10 07:06:16 -05:00
Jesper Wilhelmsson
d7dd9d1027 Merge 2018-02-05 23:12:03 +01:00
Lana Steuck
845f7823de Merge 2018-02-09 02:23:34 +00:00
Jan Lahoda
d5ec9dbfb5 8194764: javac incorrectly flags deprecated for removal imports
Fixing source range for the Source.Feature.DEPRECATE_ON_IMPORT

Reviewed-by: mcimadamore
2018-02-07 16:49:24 +01:00
Srinivas Dama
6ff900807d 8152616: com.sun.tools.javac.tree.Pretty generates nested comments for enum
Fixed nested comments for enum

Reviewed-by: mcimadamore
2018-02-06 23:49:10 +05:30
Liam Miller-Cushon
24ae32f082 8190452: javac should not add MethodParameters attributes to v51 and earlier class files
Reviewed-by: vromero, jjg
2018-02-05 10:43:31 -05:00
Joe Darcy
dff176cc84 8196627: Update MultiReleaseJarAwareSJFM.java to be version agnostic
Reviewed-by: vromero
2018-02-02 10:31:05 -08:00
Joe Darcy
80f4b22956 8196623: Update JavaBaseTest.java to be version agnostic
Reviewed-by: vromero
2018-02-02 10:29:25 -08:00
Vicente Romero
5f7d996632 8196403: remove the remaining use of string keys for errors and warnings in the compiler
Reviewed-by: mcimadamore, jlahoda
2018-02-02 07:43:54 -05:00
Joe Darcy
69287b5b99 8196551: Update TestSourceVersion.java to be robust across version changes
Reviewed-by: vromero
2018-02-01 09:16:03 -08:00
Jesper Wilhelmsson
c2735a15d7 Merge 2018-02-01 02:05:35 +01:00
Liam Miller-Cushon
8641dcffca 8194268: Incorrect parameter names for synthetic methods
Reviewed-by: jlahoda, vromero
2018-01-26 11:27:53 -08:00
Liam Miller-Cushon
81a51d8c45 8179373: javac -verbose logs the class path multiple times
Reviewed-by: martin
2018-01-25 15:18:13 -08:00
Lana Steuck
8f528fba93 Merge 2018-01-18 18:58:46 +00:00
Maurizio Cimadamore
60764aee2a 8195598: Reference to overloaded method is ambiguous with 3 methods but works with 2
Pertinent to applicability bit set on argument expression even if only one method is not pertinent

Reviewed-by: vromero
2018-01-18 11:46:33 +00:00