198 Commits

Author SHA1 Message Date
Maurizio Cimadamore
defbb67771 7041019: Bogus type-variable substitution with array types with dependencies on accessibility check
Call to upperBound() when performing type-variable substitution on element type leads to unsoundness

Reviewed-by: jjg
2013-07-17 14:14:49 +01:00
Maurizio Cimadamore
941752ea25 8012242: Lambda compatibility and checked exceptions
Inference variables in 'throws' clause with no constraints should be inferred as RuntimeException

Reviewed-by: jjg, vromero
2013-07-17 14:04:01 +01:00
Robert Field
d3d1da337a 8016281: The SAM method should be passed to the metafactory as a MethodType not a MethodHandle
8020010: Move lambda bridge creation from metafactory and VM to compiler

Langtools/javac component of the bridge support and MethodType vs. MethodHandle changes.

Reviewed-by: jjg, vromero, briangoetz, forax
2013-07-11 14:07:39 +01:00
Maurizio Cimadamore
7229f89614 8019824: very long error messages on inference error
Inference error messages shows several spurious captured variables generated during an inference loop

Reviewed-by: jjg, vromero
2013-07-05 11:05:02 +01:00
Maurizio Cimadamore
abaf1a5c51 8015432: javac crashes with stack overflow when method called recursively from nested generic call
Check.checkMethod should only be called after inference has completed

Reviewed-by: jjg, vromero
2013-06-06 15:35:05 +01:00
Maurizio Cimadamore
07baf8072a 8008627: Compiler mishandles three-way return-type-substitutability
Compiler should not enforce an order in how ambiguous methods should be resolved

Reviewed-by: jjg, vromero
2013-06-06 15:33:40 +01:00
Maurizio Cimadamore
5d6029baac 8015505: Spurious inference error when return type of generic method requires unchecked conversion to target
Use check context compatibility during 15.12.2.8 check (only when JDK 8 inference is enabled)

Reviewed-by: jjg
2013-06-04 11:34:31 +01:00
Jonathan Gibbons
155bd74411 8012728: Normalize @ignore comments on langtools tests
Reviewed-by: vromero, mcimadamore
2013-05-03 09:56:56 -07:00
Maurizio Cimadamore
a4e10d2aad 8009459: Wrong behavior of diamond finder with source level 7
Diamond finder doesn't take into account different inference behaviors

Reviewed-by: jjg
2013-03-06 15:33:17 +00:00
Maurizio Cimadamore
1ec5dfafe0 8007464: Add graph inference support
Add support for more aggressive type-inference scheme

Reviewed-by: jjg
2013-02-12 19:25:09 +00:00
Maurizio Cimadamore
0336a57511 8007463: Cleanup inference related classes
Make Infer.InferenceContext an inner class; adjust bound replacement logic in Type.UndetVar

Reviewed-by: jjg
2013-02-06 14:03:39 +00:00
Maurizio Cimadamore
5b1a78dc92 8006694: temporarily workaround combo tests are causing time out in several platforms
Reviewed-by: jjg
2013-01-23 20:57:40 +00:00
Maurizio Cimadamore
eb646f3c09 8006692: jdk/test/java/util/Collections/BigBinarySearch.java fails to compile
Missing boxing cause spurious inference failure

Reviewed-by: jjg
2013-01-23 15:08:03 +00:00
Maurizio Cimadamore
442154dcf9 8005244: Implement overload resolution as per latest spec EDR
Add support for stuck expressions and provisional applicability

Reviewed-by: jjg
2013-01-21 20:13:56 +00:00
Vicente Romero
9d4f6a0ebe 8005167: execution time of combo tests in javac should be improved
Reviewed-by: jjg, jjh
2013-01-08 13:47:57 +00:00
Maurizio Cimadamore
5c0bff8f21 8004094: Javac compiler error - synthetic method accessor generated with duplicate name
Method clash check logic should skip methods marked with ACC_SYNTHETIC

Reviewed-by: jjg
2012-12-10 12:10:50 +00:00
Maurizio Cimadamore
a494f0ab86 8003280: Add lambda tests
Turn on lambda expression, method reference and default method support

Reviewed-by: jjg
2012-11-17 19:01:03 +00:00
Maurizio Cimadamore
7c849a94da 8000931: Cleanup Resolve.java
Unify all method resolution routines

Reviewed-by: jjg
2012-11-04 11:01:49 +00:00
Maurizio Cimadamore
d4be9a13c8 7192246: Add type-checking support for default methods
Add type-checking support for default methods as per Featherweight-Defender document

Reviewed-by: jjg, dlsmith
2012-11-04 10:59:42 +00:00
Maurizio Cimadamore
319150fde0 7177386: Add attribution support for method references
Add type-checking/lookup routines for method references

Reviewed-by: jjg, dlsmith
2012-10-06 10:35:38 +01:00
Maurizio Cimadamore
5f629e503c 7188968: New instance creation expression using diamond is checked twice
Unify method and constructor check logic

Reviewed-by: jjg
2012-09-26 14:22:41 +01:00
Maurizio Cimadamore
f49f25c60d 7177306: Regression: unchecked method call does not erase return type
Spurious extra call to Attr.checkMethod when method call is unchecked

Reviewed-by: jjg, dlsmith
2012-09-25 11:56:46 +01:00
Maurizio Cimadamore
d4c5fca16a 7175433: Inference cleanup: add helper class to handle inference variables
Add class to handle inference variables instantiation and associated info

Reviewed-by: jjg, dlsmith
2012-09-25 11:55:34 +01:00
Steve Sides
12a8d12863 7191449: update copyright year to match last edit in jdk8 langtools repository
Reviewed-by: jjh
2012-08-15 13:48:46 -07:00
Maurizio Cimadamore
b03ad3ae09 7175911: Simplify error reporting API in Check.CheckContext interface
Make error messages generated during Check.checkType more uniform and more scalable

Reviewed-by: jjg, dlsmith
2012-08-02 18:22:41 +01:00
Maurizio Cimadamore
7e32f8e585 7166552: Inference: cleanup usage of Type.ForAll
Remove hack to callback into type-inference from assignment context

Reviewed-by: dlsmith, jjg
2012-05-31 17:42:14 +01:00
Sue Wei
3d77d813ce 7157798: Add 6 test scenarios for testing inheritance of multiple same-name methods from mulitple interfaces
Reviewed-by: mcimadamore
2012-05-21 16:10:14 -07:00
Maurizio Cimadamore
d951098c65 7154127: Inference cleanup: remove bound check analysis from visitors in Types.java
Remove bound checking rules from recursive subtype visitors in Types.java and replace with centralized bound-checking logic

Reviewed-by: jjg, dlsmith
2012-04-11 10:50:11 +01:00
Maurizio Cimadamore
9b1e54dae3 7151492: Encapsulate check logic into Attr.ResultInfo
ResultInfo class should be used to make attribution code transparent w.r.t. check logic being used

Reviewed-by: jjg, dlsmith
2012-03-26 15:28:22 +01:00
Maurizio Cimadamore
f6ee974ac7 7151802: compiler update caused sqe test failed
Fix regression caused by 7144506

Reviewed-by: jjg, dlsmith
2012-03-09 17:10:56 +00:00
Maurizio Cimadamore
271ed603e1 7148556: Implementing a generic interface causes a public clone() to become inaccessible
Implementation of Resolve.isOverriddenIn() should distinguish between classes/interfaces

Reviewed-by: jjg
2012-03-06 16:50:32 +00:00
Maurizio Cimadamore
6acf436edc 7151070: NullPointerException in Resolve.isAccessible
Spurious accessibility check in TransTypes

Reviewed-by: jjg
2012-03-06 16:48:29 +00:00
Maurizio Cimadamore
d5036d16cd 7144506: Attr.checkMethod should be called after inference variables have been fixed
Unify post-inference sanity check with Attr.checkMethod

Reviewed-by: jjg, dlsmith
2012-03-06 13:28:05 +00:00
Maurizio Cimadamore
b10e766b73 7148242: Regression: valid code rejected during generic type well-formedness check
Redundant type-var substitution makes generic-type well-formedness check to fail

Reviewed-by: jjg
2012-03-02 12:57:47 +00:00
Jonathan Gibbons
42b9d6bc2e 7124605: typos in javac comments
Reviewed-by: ksrini
2011-12-23 22:30:33 +00:00
Maurizio Cimadamore
4ac518143c 7115050: Add parser support for lambda expressions
Add support for parsing lambda expressions to JavacParser

Reviewed-by: jjg
2011-11-28 15:56:42 +00:00
Maurizio Cimadamore
bd420dc94e 7086586: Inference producing null type argument
Inference should fail in 15.12.2.7 when inference variables with 'nulltype' upper bounds are found

Reviewed-by: dlsmith
2011-09-16 14:16:11 +01:00
Maurizio Cimadamore
08619c2e9c 7086601: Error message bug: cause for method mismatch is 'null'
Inference error during lub() does not set 'cause' for method resolution diagnostic

Reviewed-by: jjg
2011-09-13 14:15:39 +01:00
Maurizio Cimadamore
8db2f8de59 7086595: Error message bug: name of initializer is 'null'
Implementation of MethodSymbol.location() should take into account static/instance initializers

Reviewed-by: jjg
2011-09-13 14:14:57 +01:00
Maurizio Cimadamore
5c209a7d2d 7057297: Project Coin: diamond erroneously accepts in array initializer expressions
Diamond in array initializer expressions should be rejected

Reviewed-by: jjg
2011-07-27 19:01:33 +01:00
Maurizio Cimadamore
02802c9449 7046778: Project Coin: problem with diamond and member inner classes
Diamond inference generates spurious error messages when target type is a member inner class

Reviewed-by: jjg
2011-07-27 19:01:08 +01:00
Maurizio Cimadamore
af30a2dbf3 7062745: Regression: difference in overload resolution when two methods are maximally specific
Fix most specific when two methods are maximally specific and only one has non-raw return type

Reviewed-by: jjg, dlsmith
2011-07-27 19:00:53 +01:00
Maurizio Cimadamore
fbecf91f80 7040883: Compilation error: "length in Array is defined in an inaccessible class or interface"
Fix of 7034511 (now backed out) is causing spurious accessibility errors

Reviewed-by: jjg
2011-05-02 12:05:41 +01:00
Maurizio Cimadamore
fcbd7a77c4 7039931: Project Coin: diamond inference fail with generic constructor explicit type-arguments
Diamond should be disallowed in cases where explicit generic constructor parameters are specified

Reviewed-by: jjg
2011-04-30 11:57:46 +01:00
Maurizio Cimadamore
7fb85c5cef 7034495: Javac asserts on usage of wildcards in bounds
Problem with intersection types and wildcards causing javac to crash

Reviewed-by: jjg
2011-04-29 16:05:56 +01:00
Maurizio Cimadamore
02daeca60e 7034019: ClassCastException in javac with conjunction types
Resolve.mostSpecific doesn't handle case of raw override

Reviewed-by: dlsmith
2011-04-12 20:58:06 -07:00
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