Commit Graph

1378 Commits

Author SHA1 Message Date
Abhijit Saha 4db0709160 Merge 2015-01-16 13:51:52 -08:00
Bhavesh Patel 96294a4f60 8068495: Update the protocol for references of docs.oracle.com to HTTPS in langtools
Reviewed-by: coffeys
2015-01-13 12:41:16 -08:00
Bhavesh Patel 9be29d3b07 8068495: Update the protocol for references of docs.oracle.com to HTTPS in langtools
Reviewed-by: coffeys
2015-01-13 12:41:16 -08:00
Joe Darcy 51f333ee32 8068639: Make certain annotation classfile warnings opt-in
Reviewed-by: jjg
2015-01-09 09:27:16 -08:00
Abhijit Saha 0016f10a2a Merge 2014-12-17 12:51:31 -08:00
Eric McCorkle ba82472a1e 8067039: Revert changes to annotation attribute generation
Revert changes from JDK-8029012 and JDK-8065132

Reviewed-by: jjg
2014-12-11 10:06:50 -05:00
Abhijit Saha d12a56784b Merge 2014-12-04 11:32:47 -08:00
Abhijit Saha 8cca10b1d0 Merge 2014-11-19 12:56:26 -08:00
Abhijit Saha 71e6db9c85 Merge 2014-11-05 15:39:32 -08:00
Vicente Romero 28cd00e567 8057800: Method reference with generic type creates NPE when compiling
Reviewed-by: mcimadamore
2014-11-03 16:03:37 -08:00
Maurizio Cimadamore da1abd6773 8058511: StackOverflowError at com.sun.tools.javac.code.Types.lub
Lub crashes when handling typevar with array bound

Reviewed-by: vromero, dlsmith
2014-10-28 14:59:42 +00:00
Joel Borggrén-Franck d70857aa76 8054448: (ann) Cannot reference field of inner class in an anonymous class
Reviewed-by: jlahoda, mcimadamore
2014-10-28 08:56:23 +01:00
Abhijit Saha c57f54b033 Merge 2014-10-23 12:42:35 -07:00
Vicente Romero e6b975e979 8058708: java.lang.AssertionError compiling source code
Reviewed-by: jjg
2014-09-25 17:09:23 -07:00
Jan Lahoda f008e09b91 8057794: Compiler Error when obtaining .class property
Ensuring a non-null type and sym for illegal T.class to prevent downstream errors.

Reviewed-by: mcimadamore
2014-09-22 14:55:14 +02:00
Joel Borggrén-Franck e0a85bf5cb 8062359: javac Attr crashes with NPE in TypeAnnotationsValidator visitNewClass
Reviewed-by: jlahoda, vromero
2014-11-26 12:16:47 +01:00
Robert Field bff093254c 8058112: Invalid BootstrapMethod for constructor/method reference
Bridge method references with functional interface method parameters of intersection type

Reviewed-by: vromero, dlsmith
2014-11-25 13:37:34 -08:00
Eric McCorkle 8c01cb9a34 8065132: Parameter annotations not updated when synthetic parameters are prepended
Cause javac to add synthetic parameters to Runtime[In]VisibleParameterAnnotations attributes

Reviewed-by: jjg, jfranck
2014-11-25 08:30:52 -05:00
Eric McCorkle d8c52878fb 8029012: parameter_index for type annotation not updated after outer.this added
Fix javac's handling of type annotations when synthetic parameters are added

Reviewed-by: jjg, mcimadamore
2014-11-24 12:49:30 -05:00
Vicente Romero 7bcf70da65 8063052: Inference chokes on wildcard derived from method reference
Reviewed-by: mcimadamore
2014-11-20 14:05:39 -08:00
Vicente Romero 201970587a 8059921: Missing compile error in Java 8 mode for Interface.super.field access
Reviewed-by: mcimadamore, jlahoda
2014-11-24 14:55:38 -08:00
Robert Field 8e169e839e 8048121: javac complex method references: revamp and simplify
8037404: javac NPE or VerifyError for code with constructor reference of inner class
8047341: lambda reference to inner class in base class causes LambdaConversionException
8044748: JVM cannot access constructor though ::new reference although can call it directly
8044737: Lambda: NPE while obtaining method reference through lambda expression
8038776: VerifyError when running successfully compiled java class

Reviewed-by: dlsmith, vromero
2014-11-14 21:10:58 -08:00
Jan Lahoda dab7c4306d 8062747: Compiler error when anonymous class uses method with parametrized exception
When inferring lambda's thrown types, avoid tracking variables that are not under the lambda to avoid crashes.

Reviewed-by: vromero
2014-11-14 20:27:08 +01:00
Paul Govereau 69a942ac41 8054210: NullPointerException when compiling specific code
Reviewed-by: vromero, jlahoda
2014-09-09 12:16:25 -04:00
Robert Field bc1519a381 8056051: int[]::clone causes "java.lang.NoClassDefFoundError: Array"
Reviewed-by: mcimadamore, vromero
2014-10-13 20:06:55 -07:00
Vicente Romero fa49dc7e13 8050386: javac, follow-up of fix for JDK-8049305
Reviewed-by: mcimadamore
2014-07-16 10:47:56 -04:00
Vicente Romero b1f21b8751 8033483: Should ignore nested lambda bodies during overload resolution
Reviewed-by: mcimadamore, dlsmith
2014-07-09 10:49:32 -04:00
Jan Lahoda 97130dce7f 8056984: Exception in compiler: java.lang.AssertionError: isSubClass T
Must use type variable's captured bound as a method receiver, instead of the type variable itself, while checking if deferred attribution is needed.

Reviewed-by: mcimadamore, vromero
2014-09-08 10:50:59 +02:00
Jan Lahoda 2b4a423cf7 8056014: Type inference may be skipped for a complex receiver generic method in a parameter position
When checking if deferred attribution is needed for a chain of methods, stop on any method that returns any type variable, as the rest of analysis cannot use the correct type.

Reviewed-by: mcimadamore, vromero
2014-09-08 10:48:18 +02:00
Maurizio Cimadamore 02b4e964ba 8055514: Wrong, confusing error when non-static varargs referenced in static context
Improved heuristics in MethodResolutionPhase.mergeResults()

Reviewed-by: vromero
2014-09-10 10:51:36 +01:00
Maurizio Cimadamore 7836c89054 8051958: Cannot assign a value to final variable in lambda
Remove Attr.owner and refactor code for detecting forward field references

Reviewed-by: vromero
2014-09-10 10:50:59 +01:00
Paul Govereau 1b30f40559 8036007: javac crashes when encountering an unresolvable interface
Reviewed-by: vromero, jlahoda
2014-03-18 22:12:46 +00:00
Dan Smith b08d1c7a39 8034147: javac crashes with a NullPointerException during bounds checking
Types.supertype should return Type.noType rather than null

Reviewed-by: vromero, mcimadamore
2014-06-20 10:56:31 -06:00
Dan Smith c9775ee129 8047407: Add test for JDK-8037385
Reviewed-by: mcimadamore
2014-06-20 11:42:16 -06:00
Vicente Romero 6d55f5983b 8042759: Lambda returning implicitly-typed lambdas considered pertinent to applicability
Reviewed-by: mcimadamore
2014-06-19 23:52:33 +01:00
Vicente Romero e3df0c1ec1 8038182: javac crash with FunctionDescriptorLookupError for invalid functional interface
Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: mcimadamore
2014-06-19 15:39:37 +01:00
Jan Lahoda ec2f4ae4fb 8046916: Type parameter annotations don't work with multiple type parameters
When reading type variable's annotations out of the owner's type annotations, use the type variable's index in owner to exclude annotations belonging to other type variables.

Reviewed-by: jfranck, emc
2014-06-18 10:44:16 +02:00
Paul Govereau affdbb3f1a 8038975: Access control in enhanced for
Reviewed-by: vromero, jlahoda
2014-06-18 12:06:50 -04:00
Paul Govereau 6e0cb619bb 8027886: javac allows illegal receiver parameters
8029042: Receiver parameter not supported on local class constructor

Reviewed-by: jfranck, jlahoda
2014-06-18 12:30:29 -04:00
Dan Smith 94c3a45611 8046762: Revert some inference fixes in JDK-8033718
Reviewed-by: mcimadamore
2014-06-13 13:30:29 -06:00
Dan Smith fabdfb5681 8015101: Covariance of return type implied by upper bounding on type parameter is ignored
Capture intersection supertypes before comparing their members

Reviewed-by: vromero
2014-06-10 15:25:01 -06:00
Dan Smith 894e594e77 8037385: constant pool errors with -target 1.7 and static default methods
Add error check for static interface methods invoked from -source 7

Reviewed-by: vromero, mcimadamore
2014-06-10 12:41:39 -06:00
Maurizio Cimadamore 8e2c713145 8043725: javac fails with StackOverflowException
Loose type comparison test should be protected against infinite recursion with fbounds

Reviewed-by: vromero
2014-06-10 10:22:26 +01:00
Jan Lahoda be4cf4a3de 8043186: javac test langtools/tools/javac/util/StringUtilsTest.java fails
The result of String.toLowerCase.indexOf does not always point at the start of the given string in the non-lowercased text.

Reviewed-by: jjg, bpatel
2014-05-29 10:48:00 +02:00
Jan Lahoda 0b54fb23fc 8033421: @SuppressWarnings("deprecation") does not work when overriding deprecated method
When the overrides deprecated method warning is being reported, need to do that in the lint context of the method.

Reviewed-by: vromero
2014-02-07 21:43:33 +01:00
Vicente Romero e872bbd372 8051467: javac, additional test case for JDK-8051402
Reviewed-by: mcimadamore, dlsmith
2014-07-23 10:18:55 -04:00
Maurizio Cimadamore 1f1ae2c133 8043926: javac, code valid in 7 is not compiling for 8
Type-containment doesn't handle inference variables correctly

Reviewed-by: vromero, dlsmith
2014-07-22 13:21:50 +01:00
Vicente Romero 0a9b5d7f5a 8051402: javac, type containment should accept that CAP <= ? extends CAP and CAP <= ? super CAP
Reviewed-by: mcimadamore, dlsmith
2014-07-21 10:45:40 -04:00
Vicente Romero 7a3b7526f9 8044546: Crash on faulty reduce/lambda
Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: mcimadamore, dlsmith
2014-06-20 20:36:54 +01:00
Vicente Romero e604a9b3b4 8051004: javac, incorrect bug id in tests for JDK-8050386
Reviewed-by: mcimadamore
2014-07-17 10:55:50 -04:00
Vicente Romero cc2d691343 8050386: javac, follow-up of fix for JDK-8049305
Reviewed-by: mcimadamore
2014-07-16 10:47:56 -04:00
Mandy Chung 4f041a3434 8050804: (jdeps) Recommend supported API to replace use of JDK internal API
Reviewed-by: dfuchs
2014-07-18 10:43:41 -07:00
Mandy Chung d45650dcd4 8029548: (jdeps) use @jdk.Exported to determine supported vs JDK internal API
8031092: jdeps does not recognize --help option
8048063: (jdeps) Add filtering capability

Reviewed-by: alanb, dfuchs
2014-07-17 15:23:08 -07:00
Vicente Romero 59f80f35a9 8049075: javac, wildcards and generic vararg method invocation not accepted
Reviewed-by: mcimadamore
2014-07-04 16:34:44 +01:00
Vicente Romero 0fe9666422 8047719: Incorrect LVT in switch statement
Reviewed-by: jjg, jlahoda
2014-06-27 20:32:12 +01:00
Vicente Romero bac50f1fdb 8036953: Fix timing of varargs access check, per JDK-8016205
Reviewed-by: mcimadamore, dlsmith
2014-06-17 17:33:01 +01:00
Paul Govereau e7c152d58f 8036007: javac crashes when encountering an unresolvable interface
Reviewed-by: vromero, jlahoda
2014-03-18 22:12:46 +00:00
Robert Field 9c992458aa 8046060: Different results of floating point multiplication for lambda code block
Propogate strictfp into lambda body

Reviewed-by: vromero, jlahoda
2014-06-23 13:14:32 -07:00
Paul Govereau 23e712af80 8030726: tools/javac/NoStringToLower.java fails due to enforcement no use of String.toLowerCase on non-langtools classes
Fix NoStringToLower test to only enforce ban on String.toLowerCase on langtools classes

Reviewed-by: vromero, jfranck
2013-12-19 11:38:45 -05:00
Jan Lahoda f67718a9d7 8029800: Flags.java uses String.toLowerCase without specifying Locale
Introducing StringUtils.toLowerCase/toUpperCase independent on the default locale, converting almost all usages of String.toLowerCase/toUpperCase to use the new methods.

Reviewed-by: jjg, bpatel
2013-12-17 10:55:59 +01:00
Vicente Romero 5c11c6515b 8041713: Type inference of non-existent method references crashes the compiler
Reviewed-by: mcimadamore
2014-06-04 20:01:13 +01:00
Vicente Romero 1a258d703f 8044487: Fix for 8042785 causes regression tests to fail with java.lang.VerifyError
Reviewed-by: jjg, ksrini
2014-06-03 20:00:01 +01:00
Jan Lahoda 4126a92897 8031967: For some sources compiler compiles for ever
Avoid creating DeferredTypes for method calls with method calls as receivers if the site can be determined reliably

Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: mcimadamore, vromero
2014-05-30 12:54:16 +02:00
Vicente Romero 4fdf5fb0f8 8042785: javac, bridge methods are not getting the flags from the original method
Reviewed-by: jjg, jlahoda
2014-05-30 18:21:05 +01:00
Paul Govereau 1eeb47c67c 8042741: Java 8 compiler throws NullPointerException depending location in source file
Reviewed-by: vromero, jlahoda
2014-05-27 22:26:53 +01:00
Stephane Epardaud 39412a6156 8037934: Javac generates invalid signatures for local types
Reviewed-by: vromero, rfield
2014-05-28 21:47:30 +01:00
Vicente Romero 7c2e512261 8037937: javac: AssertionError during LVT generation, wrong variable ranges
Reviewed-by: mcimadamore
2014-05-29 15:28:01 +01:00
Dan Smith 52b67bab54 8044050: Move misplaced inference tests to test/tools/javac/generics/inference
Reviewed-by: vromero
2014-05-27 16:39:05 -06:00
Paul Govereau 6b0e45946c 8041704: wrong error message when mixing lambda expression and inner class
Reviewed-by: vromero
2014-05-27 21:15:06 +01:00
Paul Govereau c01eecb994 8033437: javac, inconsistent generic types behaviour when compiling together vs. separate
Co-authored-by: Vicente Romero <vicente.romero@oracle.com>
Reviewed-by: jjg
2014-05-23 16:27:22 +01:00
Dan Smith 1521e690b5 8034223: Most-specific should not have any special treatment for boxed vs. unboxed types
Rewrite most-specific logic to conform to JLS 8 15.12.2.5

Reviewed-by: vromero
2014-05-14 15:41:28 -06:00
Dan Smith 64d691fef0 8042882: Support verbosity options in langtools testing
8032441: langtools/test/Makefile breaks when JT_JAVA set to a JDK 9 build

Reviewed-by: mduigou
2014-05-13 15:34:13 -06:00
Vicente Romero 3d0a7059e8 8037379: fix for JDK-8029569 doesn't cover all possible cases
Reviewed-by: jjg
2014-05-13 16:14:54 +01:00
Vicente Romero 6aa281e08d 8028503: javac, for method references a primitive type can be added as a bound
Reviewed-by: jjg, dlsmith
2014-05-13 16:11:43 +01:00
Vicente Romero 3a1e8e7b59 8029102: Enhance compiler warnings for Lambda
Reviewed-by: briangoetz, jjg, jlahoda, ahgross
2014-05-13 14:18:34 +01:00
Jan Lahoda a3447a6349 8041663: Sensitive dependence on location of nested interface
Adding a method among ambiguous candidates only if it is more specific than some of the existing candidates.

Reviewed-by: dlsmith, vromero
2014-05-09 12:55:58 +02:00
Jan Lahoda 2d4fa62e0c 8040822: Duplicated notifications can be sent to TaskListener
The analyze finished event must only be sent on the first call to JavaCompiler.flow for a given class.

Reviewed-by: jjg
2014-05-09 09:36:35 +02:00
Dan Smith 63c105c89c 8042656: Inference produces spurious error for intersection type bounds check
Fix subtyping for intersections involving capture variables

Reviewed-by: vromero
2014-05-09 19:42:25 -06:00
Dan Smith f64282bc0f 8033718: Inference ignores capture variable as upper bound
Split Types.lowerBound into two methods; fix bugs in inference handling of capture variables.

Reviewed-by: vromero
2014-05-06 15:46:09 -06:00
Vicente Romero c91f0985c3 8030741: Inference: implement eager resolution of return types, consistent with JDK-8028800
Reviewed-by: dlsmith, jjg
2014-05-02 01:25:26 +01:00
Robert Field d4d9a02e3e 8029852: Bad code generated (VerifyError) when lambda instantiates enclosing local class and has captured variables
8029725: Lambda reference to containing local class causes javac infinite recursion

Reviewed-by: vromero, jlahoda, dlsmith
2014-05-01 15:43:28 -07:00
Robert Field 00f358195e 8036942: javac generates incorrect exception table for multi-catch statements inside a lambda
Union type info lost and also union type is not processed by TreeMaker.Type -- address by using existing tree, thus by-passing such issues.

Reviewed-by: vromero, jlahoda
2014-05-01 11:35:02 -07:00
Paul Govereau 716baf3d89 8039026: Definitely unassigned field can be accessed
Reviewed-by: vromero, jlahoda
2014-04-30 23:29:43 +01:00
Paul Govereau a652cf06ab 8038023: Compiler crash ClassCastException
Add additional checks on results of ClassReader.readPool

Reviewed-by: vromero
2014-04-30 23:26:43 +01:00
Jan Lahoda 200231c13f 8039250: Test tools/javac/classfiles/InnerClasses/SyntheticClasses.java fails
The test should only analyze classfiles.

Reviewed-by: vromero
2014-04-23 11:28:09 +02:00
Jan Lahoda c95d4f510c 8039079: Test tools/javac/processing/environment/round/TestElementsAnnotatedWith.java fails
Ensuring the test passes in both samevm and othervm modes.

Reviewed-by: darcy
2014-04-15 18:58:47 +02:00
Jan Lahoda eb58718c31 8038788: javac behaves incorrectly for annotations after method type parameters in some cases
Reviewed-by: jjg, emc
2014-04-18 11:53:34 +02:00
Vicente Romero 8f85051892 8029718: Should always use lambda body structure to disambiguate overload resolution
Reviewed-by: dlsmith, jjg, jlahoda
2014-04-22 17:55:22 +01:00
Vicente Romero 487d017cd0 8029002: javac should take multiple upper bounds into account in incorporation
Reviewed-by: dlsmith, jjg
2014-04-18 23:58:05 +01:00
Kumar Srinivasan b3329f42ac 8037484: [javadoc] fails with java.lang.IllegalStateException: endPosTable already set
Reviewed-by: jjg
2014-04-16 18:15:48 -07:00
Kumar Srinivasan cc2a4bf79f 8038976: javadoc requires a trailing / for links where java 7's javadoc didn't
Reviewed-by: jjg
2014-04-16 19:21:59 -07:00
Lana Steuck d0c5780fac Merge 2014-04-17 09:34:39 -07:00
Lana Steuck 12824a20fb Merge 2014-04-16 14:22:49 -07:00
Paul Govereau 7f97072ab7 8023945: javac wrongly allows a subclass of an anonymous class
Reviewed-by: jjg
2014-04-15 17:09:56 -04:00
Robert Field 619db87b78 8037935: Javac -- final local String var referenced in binary/unary op in lambda produces code that does not verify
Remove over-zealous Attr optimization breaking lambdas

Reviewed-by: jjg, vromero
2014-04-10 14:01:53 -07:00
Robert Field 6f88c3dbc3 8038420: Lambda returning post-increment generates wrong code
Reviewed-by: vromero, jlahoda
2014-04-10 11:24:26 -07:00
Abhijit Saha 922227b666 Merge 2014-04-09 12:27:24 -07:00
Jan Lahoda b0987758cd 8035890: jdk8 javac -source 7 compiles test case it should not
Ensuring source level checks are performed in two additional cases related to type annotations, adding specialized error message for annotations after method type parameters.

Reviewed-by: jfranck, jjg
2014-03-31 21:27:25 +02:00
Alexander Zuev 2807e8d660 8031425: Two langtools/javac tests fail by timeout on Windows
Reviewed-by: vromero, jjg
2014-04-07 11:38:59 +02:00
Paul Govereau 529dad03f2 8035972: missing test file for 8034048
Reviewed-by: jjg, vromero
2014-04-04 12:56:56 +01:00