Commit Graph

180 Commits

Author SHA1 Message Date
Maurizio Cimadamore 84f6578032 8130304: Inference: NodeNotFoundException thrown with deep generic method call chain
Bug in Tarjan implementation is generating node ids which can overflow 32 bits

Reviewed-by: vromero
2016-01-26 21:08:18 +00:00
Maurizio Cimadamore a91e63dcbc 8065986: Compiler fails to NullPointerException when calling super with Object<>()
Missing POLY kind selector on recursive constructor calls with poly arguments

Reviewed-by: vromero
2015-11-12 22:10:46 +00:00
Maurizio Cimadamore c0bd7bdb12 8055963: Inference failure with nested invocation
Revise heuristics to force eager instantiation of return inference vars

Reviewed-by: vromero
2015-05-26 11:03:40 +01:00
Maurizio Cimadamore 07da94ef86 8064803: Javac erroneously uses instantiated signatures when merging abstract most-specific methods
Wrong method type used in AmbiguousError.mergeAbstracts

Reviewed-by: jlahoda
2015-05-01 16:43:28 +01: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
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 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
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 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
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
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
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 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
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
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
Steve Sides 93876b4349 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