187 Commits

Author SHA1 Message Date
Maurizio Cimadamore
3076062240 8064365: Better support for finder capabilities in target-typing context
Add new framework to allow for easy creation of finder-like capabilities.

Reviewed-by: jjg, jlahoda
2014-12-12 18:07:24 +00:00
Maurizio Cimadamore
02df6a4564 8065986: Compiler fails to NullPointerException when calling super with Object<>()
Missing POLY kind selector on recursive constructor calls with poly arguments

Reviewed-by: vromero
2014-11-28 11:45:56 +00:00
Maurizio Cimadamore
5bb86103a9 8064803: Javac erroneously uses instantiated signatures when merging abstract most-specific methods
Wrong method type used in AmbiguousError.mergeAbstracts

Reviewed-by: jlahoda
2014-11-17 23:41:56 +00:00
Maurizio Cimadamore
87d664f4f0 8062977: Inference: NullPointerException during bound incorporation
Bogus Types.asSuper call on array type symbol

Reviewed-by: vromero
2014-11-06 14:33:22 +00:00
Maurizio Cimadamore
ded3a562b9 6987475: Order of declarations affects whether abstract method considered overridden
Types.implementation erroneously returns first matching method in hierarchy.

Reviewed-by: vromero
2014-11-06 14:31:56 +00:00
Jonathan Gibbons
8bd23f1681 8062348: langtools tests should close file manager (group 1)
Reviewed-by: darcy
2014-10-29 17:25:23 -07:00
Maurizio Cimadamore
2756ed20d7 8058511: StackOverflowError at com.sun.tools.javac.code.Types.lub
Lub crashes when handling typevar with array bound

Reviewed-by: vromero, dlsmith
2014-10-14 12:01:05 +01:00
Maurizio Cimadamore
8f96799dd5 8058199: Code generation problem with javac skipping a checkcast instruction
TransTypes sometimes ignores inferred signatures when emitting synthetic casts

Reviewed-by: vromero
2014-10-14 12:00:39 +01:00
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