179 Commits

Author SHA1 Message Date
Maurizio Cimadamore
ae97aeb0d9 8055963: Inference failure with nested invocation
Revise heuristics to force eager instantiation of return inference vars

Reviewed-by: vromero
2014-09-15 12:43:35 +01:00
Sonali Goel
a047a4f1ec 8048837: .out files for generics tests in tools/javac dir - part 3
Reviewed-by: jjg
2014-07-17 11:22:47 -07:00
Sonali Goel
5324b04fde 8048836: .out files for generics tests in tools/javac dir
Reviewed-by: jjg
2014-07-17 11:14:39 -07:00
Sonali Goel
541591d644 8048833: .out files for generics tests in tools/javac dir
Reviewed-by: jjg
2014-07-17 09:56:07 -07:00
Maurizio Cimadamore
15cfa4aac9 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-08 15:42:04 +01:00
Vicente Romero
1ff4245739 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
Dan Smith
06b8a7ac80 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
3ea78c679c 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
Maurizio Cimadamore
dab523a752 8043725: javac fails with StackOverflowException
Loose type comparison test should be protected against infinite recursion with fbounds

Reviewed-by: vromero
2014-06-09 12:54:02 +01:00
Maurizio Cimadamore
cd68d10b6f 8043893: Inference doesn't report error on incompatible upper bounds
Failure on type-equality check during incorporation doesn't trigger inference error

Reviewed-by: vromero
2014-06-05 12:21:38 +01:00
Vicente Romero
09250abb84 8041713: Type inference of non-existent method references crashes the compiler
Reviewed-by: mcimadamore
2014-06-04 20:01:13 +01:00
Dan Smith
2b4c40d39b 8044050: Move misplaced inference tests to test/tools/javac/generics/inference
Reviewed-by: vromero
2014-05-27 16:39:05 -06:00
Vicente Romero
9cf78d324c 8028503: javac, for method references a primitive type can be added as a bound
Reviewed-by: jjg, dlsmith
2014-05-10 01:24:35 +01:00
Dan Smith
f799e8d6fc 8042656: Inference produces spurious error for intersection type bounds check
Fix subtyping for intersections involving capture variables

Reviewed-by: vromero
2014-05-09 14:56:59 -06:00
Dan Smith
282ee77f73 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
Paul Govereau
6ec0c32eff 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-02 22:35:23 +01:00
Joe Darcy
e5fb7f77d6 8036842: Remove unneeded/obsolete -source/-target options in javac tests, part 2
Reviewed-by: jjg, sogoel
2014-03-07 13:30:23 -08:00
Steve Sides
4cbb43a7e3 8029230: Update copyright year to match last edit in jdk8 langtools repository for 2013
Reviewed-by: ksrini
2013-12-24 09:17:37 -08:00
Eric McCorkle
44f29ffde7 8027439: Compile-time error in the case of ((Integer[] & Serializable)new Integer[1]).getClass()
8027253: javac illegally accepts array as bound

Backing out change allowing arrays in intersection types

Reviewed-by: vromero
2013-11-11 09:47:46 -05:00
Steve Sides
03c9c56f88 8005542: jtreg test OverrideBridge.java contains @ignore
Reviewed-by: jjg
2013-10-04 16:23:05 -07:00
Eric McCorkle
d9502c856a 8021339: Compile-time error during casting array to intersection
Add ability to have arrays in intersection types.

Reviewed-by: jjg, vromero
2013-10-01 17:41:57 -04:00
Eric McCorkle
914b1751c4 8013846: javac fails to reject semantically equivalent generic method declarations
Cause javac to consider intersection types with the same elements to be equal regardless of order.

Reviewed-by: jjg, vromero
2013-09-12 14:52:28 -04:00
Alexander Zuev
7947e49ae3 7182350: Regression in wording of unchecked warning message
Reviewed-by: mcimadamore, jjg
2013-08-20 17:34:06 +04:00
Jan Lahoda
d992a67102 8022508: javac crashes if the generics arity of a base class is wrong
Reviewed-by: mcimadamore, vromero
2013-08-15 22:36:08 +02:00
Jan Lahoda
0847cbc403 8021338: Diamond finder may mark a required type argument as unnecessary
Reviewed-by: mcimadamore
2013-07-28 10:17:45 +02:00
Lana Steuck
524a340ac9 Merge 2013-07-22 17:39:45 -07:00
Maurizio Cimadamore
70e005a7eb 8013638: Few policy tests are failing in Lambda nightly
BridgeHarness test is leaving files open

Reviewed-by: ksrini
2013-07-17 19:28:40 +01:00
Lana Steuck
be00b8110f Merge 2013-07-17 10:40:53 -07:00
Maurizio Cimadamore
a2a579a4bd 8019942: Graph inference: avoid redundant computation during bound incorporation
Bound incorporation should not perform same operation multiple times

Reviewed-by: jjg
2013-07-17 14:21:12 +01:00
Maurizio Cimadamore
73953320cc 8020149: Graph inference: wrong logic for picking best variable to solve
Replace logic for selecting best inference leaf in the graph during an unsticking round

Reviewed-by: jjg
2013-07-17 14:19:02 +01:00
Maurizio Cimadamore
8850329bc1 8016640: compiler hangs if the generics arity of a base class is wrong
Check.checkCompatibleConcretes hang when javac creates synthetic supertypes for 269 model API

Reviewed-by: jjg
2013-07-17 14:16:25 +01:00
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