94 Commits

Author SHA1 Message Date
Maurizio Cimadamore
47f7c2e668 8168134: Inference: javac incorrectly propagating inner constraint with primitive target
Check for propagation doesn't take into account primitive type constraints

Reviewed-by: vromero
2016-10-26 12:27:51 +01:00
Vicente Romero
29aa24a3c1 8162546: change hidden options -Xdebug to --debug, -XshouldStop to --should-stop, and -diags to --diags
Reviewed-by: mcimadamore
2016-09-06 17:04:43 -07:00
Maurizio Cimadamore
2c2d5c4917 8164399: inference of thrown variable does not work correctly
Logic for inferring thrown variables should exclude non proper bounds as per JLS 18.1

Reviewed-by: vromero, dlsmith
2016-08-25 11:51:19 +01:00
Vicente Romero
bec16625dc 8153407: javac, fold debug options
Reviewed-by: mcimadamore, jjg
2016-07-08 16:47:13 -07:00
Maurizio Cimadamore
62648293e7 8159680: Inference failure with unchecked subtyping and arrays
Discrepancy in handling of capture conversion between Types.isSubtype and Types.isSubtypeUnchecked

Reviewed-by: vromero
2016-06-17 18:17:16 +01:00
Maurizio Cimadamore
17c048ae32 8158355: Inference graph dot support broken
IllegalStateException when converting an inference graph to dot file

Reviewed-by: vromero
2016-06-02 16:08:24 +01:00
Maurizio Cimadamore
414c739476 8157149: Inference: weird propagation of thrown inference variables
Overhaul of treatment of thrown inference variables

Reviewed-by: vromero
2016-05-23 15:07:10 +01:00
Maurizio Cimadamore
cc3cb0640f 8156954: javac incorrectly complains of incompatible types
Add heuristics to pick best stuck constraint as per JLS 18.5.2

Reviewed-by: vromero
2016-05-17 17:53:18 +01:00
Maurizio Cimadamore
945406686e 8152832: Type inference regression in javac
Stale incoropration actions caused missing inference bounds

Reviewed-by: vromero
2016-04-08 10:52:26 +01:00
Maurizio Cimadamore
fd0031d702 8152411: Regression: inference fails to reject incompatible upper bounds
Wrong undet variable comparison in propagation optimization

Reviewed-by: vromero
2016-03-23 16:59:02 +00:00
Srikanth Adayapalam
3a3ef10033 8148930: Incorrect erasure of exceptions in override-equivalent dual interface impl
Before computing intersection of thrown types, javac must make sure type variables come from the same set.

Reviewed-by: mcimadamore
2016-03-07 18:49:02 +05:30
Maurizio Cimadamore
8aa9bf5cc6 8148213: Regression: nested unchecked call does not trigger erasure of return type
FreeTypeListener was deferred too much and caused loss of unchecked warning while in the middle of overload

Reviewed-by: vromero
2016-01-28 14:06:27 +00:00
Maurizio Cimadamore
9dcc8b2068 8147493: regression when type-checking unchecked method calls
Shared warner in Attr.checkMethod leads to spurious inference errors

Reviewed-by: vromero
2016-01-20 10:50:28 +00:00
Dan Smith
c5a1a9a3e0 7190296: Test for type containment during bounds checking
Reviewed-by: mcimadamore
2015-12-17 15:46:37 -07:00
Maurizio Cimadamore
875bccb11e 8067767: type inference performance regression
Overhaul implememntation of inference incorporation

Reviewed-by: vromero
2015-11-19 16:43:11 +00:00
Maurizio Cimadamore
e0f654819b 8141613: Compiler fails to infer generic type
Repeated capture of same expression leads to erroneous inference constraints

Reviewed-by: vromero
2015-11-10 11:49:14 +00:00
Maurizio Cimadamore
379f2540aa 8077306: Recursive implementation of List.map leads to stack overflow
Recusrive implementation of List.map uses too much stack; switch to iterative version.

Reviewed-by: jlahoda
2015-09-14 11:26:14 +01:00
Andreas Lundblad
8d0ebb66bd 8133671: langtools tests have bad license
Dropped classpath exception from copyright notice in tests.

Reviewed-by: jjg
2015-08-26 09:02:02 +02:00
Maurizio Cimadamore
4ae1cb2cd6 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
2015-07-17 12:46:07 +01:00
Liam Miller-Cushon
7d78c183c4 8130803: add regression test related to fix for JDK-8078024
Reviewed-by: mcimadamore
2015-07-09 11:06:48 -07:00
Alexander Kulyakhtin
b6262441ad 8076543: Add @modules as needed to the langtools tests
Reviewed-by: jjg, shurailine
2015-05-21 11:41:04 -07:00
Sonali Goel
11d7b1e161 8074502: Group 13c: golden files for tests in tools/javac/generics dir
Reviewed-by: jjg, mcimadamore
2015-05-15 09:30:55 -07:00
Vicente Romero
4693c79e67 8078433: javac, some tests are failing after JDK-8078024 because of golden files mismatch
Reviewed-by: darcy
2015-04-22 11:39:06 -07:00
Vicente Romero
8c8261cbad 8078024: javac, several incorporation steps are silently failing when an error should be reported
Reviewed-by: mcimadamore
2015-04-22 09:44:15 -07:00
Andrey Nazarov
9c48863bb1 8075610: java.desktop module dependency can be eliminated in tools/javac/generics/inference/5073060/GenericsAndPackages.java
Reviewed-by: jjg
2015-03-26 17:39:04 +01:00
Srikanth Adayapalam
8afd89977c 8062373: Project Coin: diamond and anonymous classes
Allow diamond inference in combination with anonymous class instance creation

Co-authored-by: Maurizio Cimadamore <maurizio.cimadamore@oracle.com>
Reviewed-by: mcimadamore, vromero
2015-03-30 17:09:14 +05:30
Maurizio Cimadamore
24c51e1e1b 8048838: type inference performance regression
Reduce redundant bounds before attempting to do pairwise lub computation during bound incorporation.

Reviewed-by: vromero
2015-03-19 11:40:47 +00:00
Dan Smith
13490088bf 8039214: Inference should not map capture variables to their upper bounds
Update to Types.containsType; related adjustment to most-specific test

Reviewed-by: mcimadamore, vromero
2015-02-20 17:05:13 -07: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
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
5324b04fde 8048836: .out files for generics tests in tools/javac dir
Reviewed-by: jjg
2014-07-17 11:14:39 -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
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
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
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
Alexander Zuev
7947e49ae3 7182350: Regression in wording of unchecked warning message
Reviewed-by: mcimadamore, jjg
2013-08-20 17:34:06 +04: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
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
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
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
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