102 Commits

Author SHA1 Message Date
Maurizio Cimadamore
c46387423a 7034511: Loophole in typesafety
Type-variable substutution takes upper bound of replaced captured type-variable

Reviewed-by: dlsmith
2011-04-12 20:56:16 -07:00
Maurizio Cimadamore
bd9526ecbe 7030150: Type inference for generic instance creation failed for formal type parameter
Problem when explicit generic constructor type-arguments are used in conjunction with diamond

Reviewed-by: jjg
2011-03-29 16:40:51 +01:00
Maurizio Cimadamore
0a0b5a7a8a 7030687: Diamond: compiler accepts erroneous code where diamond is used with non-generic inner class
Diamond accepts non-parameterized member inner classes with parameterized outer because of a bad check

Reviewed-by: jjg
2011-03-29 16:40:07 +01:00
Maurizio Cimadamore
409b9b8d25 7020044: Project Coin: diamond erroneous allowed on some anonymous inner classes
Disallow diamond on anonymous innner class creation expression (as per JSR 334's EDR)

Reviewed-by: jjg
2011-03-07 14:31:50 +00:00
Maurizio Cimadamore
f416cac815 7022054: Invalid compiler error on covariant overriding methods with the same erasure
Rules for method clash use notion of subsignature, which is sometimes too strict and incompatible with JDK 6

Reviewed-by: jjg
2011-03-03 17:34:58 +00:00
Maurizio Cimadamore
1683dd4109 7015715: lub gets stuck on type with complex supertype
Lub should not scan supertypes unnecessarily

Reviewed-by: jjg, dlsmith
2011-02-28 11:50:56 +00:00
Maurizio Cimadamore
32216fc797 7015430: Incorrect thrown type determined for unchecked invocations
Thrown types do not get updated after 15.12.2.8, and do not get erased as per 15.12.2.6

Reviewed-by: jjg, dlsmith
2011-02-28 11:48:53 +00:00
Maurizio Cimadamore
7186448cfe 7019631: issues in test headers in b130
Fix to test headers not containing correct bug ID

Reviewed-by: jjg
2011-02-23 14:17:08 +00:00
Maurizio Cimadamore
1ae687fbd2 7020657: Javac rejects a fairly common idiom with raw override and interfaces
Name clash should not be reported if subinterface/implementing class resolves the clash by defining common overrider

Reviewed-by: jjg
2011-02-23 14:16:12 +00:00
Maurizio Cimadamore
7d8c3e9460 7020043: Project Coin: diamond allowed on non-generic type
Diamond oerator should be disallowed on non-generic class types (i.e. String)

Reviewed-by: jjg
2011-02-18 12:28:49 +00:00
Maurizio Cimadamore
dfec6e2301 7007615: java_util/generics/phase2/NameClashTest02 fails since jdk7/pit/b123
Override clash algorithm is not implemented correctly

Reviewed-by: jjg
2011-02-07 18:10:13 +00:00
Maurizio Cimadamore
f4daf3d7bf 7014715: javac returns different error code for certain failure(s)
Javac silently crashes when emitting certain kinds of resolution diagnostics

Reviewed-by: jjg
2011-02-03 09:38:19 +00:00
Maurizio Cimadamore
536bd08692 6969184: poor error recovery after symbol not found
Generic type-well formedness check should ignore erroneous symbols

Reviewed-by: jjg
2011-02-03 09:37:28 +00:00
Maurizio Cimadamore
15959fbf11 6838943: inference: javac is not handling type-variable substitution properly
Free type-variables are being replaced with type-variables bound to forall type leading to unsoundness

Reviewed-by: jjg, dlsmith
2011-01-28 12:06:21 +00:00
Maurizio Cimadamore
1e776bc78a 6313164: javac generates code that fails byte code verification for the varargs feature
Method applicability check should fail if formal varargs element type is not accessible

Reviewed-by: jjg
2011-01-28 12:03:49 +00:00
Maurizio Cimadamore
6647b73cc8 6910550: javac 1.5.0_17 fails with incorrect error message
Multiple clashing members declared in same class should be added to the class' scope in order to avoid downstream spurious diagnostics

Reviewed-by: jjg
2011-01-28 12:01:07 +00:00
Maurizio Cimadamore
b77effad6c 6968793: issues with diagnostics
Several diagnostic improvements

Reviewed-by: jjg
2011-01-24 15:44:51 +00:00
Maurizio Cimadamore
df54c56a04 6943278: spurious error message for inference and type-variable with erroneous bound
Type-inference should ignore erroneous bounds

Reviewed-by: jjg
2011-01-24 15:44:15 +00:00
Kelly O'Hair
84b5875f26 6962318: Update copyright year
Reviewed-by: xdono
2010-12-28 15:54:52 -08:00
Maurizio Cimadamore
929d3fd3f5 6476118: compiler bug causes runtime ClassCastException for generics overloading
Compiler allows bridge methods to override unrelated method

Reviewed-by: jjg
2010-12-09 15:50:34 +00:00
Maurizio Cimadamore
8644a0bc46 7002837: Diamond: javac generates diamond inference errors when in 'finder' mode
Javac should disable error messages when analyzing instance creation expression in 'diamond finder' mode

Reviewed-by: jjg
2010-12-03 16:32:31 +00:00
Maurizio Cimadamore
7613f7a72c 6956758: NPE in com.sun.tools.javac.code.Symbol - isSubClass
Use of TransTypes.cast() instead of TransTypes.coerce() causes NPE in Lower

Reviewed-by: jjg
2010-12-03 16:31:23 +00:00
Maurizio Cimadamore
3e65664acf 6995200: JDK 7 compiler crashes when type-variable is inferred from expected primitive type
15.12.2.8 should use boxing when expected type in assignment context is a primitive type

Reviewed-by: jjg
2010-11-23 11:08:43 +00:00
Maurizio Cimadamore
3a681162e4 6985719: Alike methods in interfaces (Inheritance and Overriding)
Javac should report error when interface inherits unrelated method with same erasure

Reviewed-by: jjg
2010-11-15 13:50:53 +00:00
Maurizio Cimadamore
83fb083bfa 6996914: Diamond inference: problem when accessing protected constructor
Special resolution scheme for diamond inference needs to open up protected constructors in anon inner class creation

Reviewed-by: jjg
2010-11-10 12:37:25 +00:00
Maurizio Cimadamore
9b7bc21bb0 6939780: add a warning to detect diamond sites
Added hidden compiler flag '-XDfindDiamond' to detect 'diamondifiable' sites

Reviewed-by: jjg
2010-11-02 12:01:35 +00:00
Maurizio Cimadamore
ac9f97939f 6996415: Override bridges causes compiler-generated code to end up with synthetic infinite loop
Temporarily disable fix for override bridges (6337171)

Reviewed-by: jjg
2010-11-02 12:00:54 +00:00
Lana Steuck
78db31beb6 Merge 2010-09-25 12:02:32 -07:00
Maurizio Cimadamore
cd3371e702 5088624: cannot find symbol message should be more intelligent
Resolve.java should keep track of all candidates found during a method resolution sweep to generate more meaningful diagnostics

Reviewed-by: jjg
2010-09-18 09:56:23 -07:00
Lana Steuck
dc37688eb9 Merge 2010-09-16 11:20:36 -07:00
Kelly O'Hair
fd65dbfc50 6982137: Rebranding pass 2 - missed copyright changes
Reviewed-by: mbykov
2010-09-09 16:29:40 -07:00
Maurizio Cimadamore
73825fc885 6337171: javac should create bridge methods when type variable bounds restricted
Javac should add synthetic overrides for inherited abstract methods in order to preserve binary compatibility

Reviewed-by: jjg
2010-09-07 17:31:54 +01:00
Maurizio Cimadamore
634d001c64 6977800: Regression: invalid resolution of supertype for local class
Resolution of superclass/superinterfaces in extends/implements clause skips local classes

Reviewed-by: jjg
2010-08-19 11:54:25 +01:00
Maurizio Cimadamore
71962ebfb0 6886247: regression: javac crashes with an assertion error in Attr.java
Capture conversion does not work on nested types

Reviewed-by: jjg
2010-08-19 11:50:50 +01:00
Maurizio Cimadamore
2801325742 6369605: Unconstrained type variables fails to include bounds
Unconstrained type-variables with recursive bounds are not inferred properly

Reviewed-by: jjg
2010-08-16 14:58:10 +01:00
Maurizio Cimadamore
541f7a7a41 6938454: Unable to determine generic type in program that compiles under Java 6
A redundant dubtyping check causes spurious inference failure

Reviewed-by: jjg
2010-07-29 15:56:25 +01:00
Jonathan Gibbons
ccd014ed3f 6971882: Remove -XDstdout from javac test
Reviewed-by: darcy
2010-07-26 14:18:45 -07:00
Jonathan Gibbons
29ceaebc37 6968497: localized text appears in raw diagnostic
Reviewed-by: darcy
2010-07-12 16:37:46 -07:00
Jonathan Gibbons
0dd9ef9b43 6944312: Potential rebranding issues in openjdk/langtools repository sources
Reviewed-by: darcy
2010-06-10 16:08:01 -07:00
Lana Steuck
2592bab72c Merge 2010-05-28 12:41:48 -07:00
Kelly O'Hair
bd4f4be9d7 6943119: Rebrand source copyright notices
Reviewed-by: darcy
2010-05-25 15:54:51 -07:00
Maurizio Cimadamore
836fb6fe52 6951833: latest diamond implementation generates spurious raw type warnings
Raw warning checks should be disabled in the presence of a diamond AST node

Reviewed-by: jjg
2010-05-19 16:43:30 +01:00
Maurizio Cimadamore
cd66a7b462 6946618: sqe test fails: javac/generics/NewOnTypeParm in pit jdk7 b91 in all platforms
Bad cast to ClassType in the new diamond implementation fails if the target type of the instance creation expression is a type-variable

Reviewed-by: jjg
2010-05-19 16:42:37 +01:00
Maurizio Cimadamore
1bc9b6324e 6880344: Recursive type parameters do not compile
Issue in type-variable substitution causes valid code to be rejected

Reviewed-by: jjg
2010-05-19 16:41:57 +01:00
Maurizio Cimadamore
d3fa7f79ad 6939620: Switch to 'complex' diamond inference scheme
Implement new inference scheme for diamond operator that takes into account type of actual arguments supplied to constructor

Reviewed-by: jjg, darcy
2010-04-14 12:31:55 +01:00
Maurizio Cimadamore
965595d38b 6939618: Revert 'simple' diamond implementation
Backout changeset for 6840638

Reviewed-by: jjg
2010-04-14 12:23:29 +01:00
Jonathan Gibbons
2ed0d63583 6933914: fix missing newlines
Reviewed-by: ohair
2010-03-10 16:23:18 -08:00
Jonathan Gibbons
953e026858 6931126: jtreg tests not Windows friendly
Reviewed-by: darcy
2010-03-03 19:34:34 -08:00
Jonathan Gibbons
87efbd8787 6931127: strange test class files
Reviewed-by: darcy
2010-03-02 16:43:29 -08:00
Jonathan Gibbons
305d4bc5fc 6919889: assorted position errors in compiler syntax trees
Reviewed-by: darcy
2010-01-29 16:06:51 -08:00