70 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
Jonathan Gibbons
42b9d6bc2e 7124605: typos in javac comments
Reviewed-by: ksrini
2011-12-23 22:30:33 +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
1683dd4109 7015715: lub gets stuck on type with complex supertype
Lub should not scan supertypes unnecessarily

Reviewed-by: jjg, dlsmith
2011-02-28 11:50:56 +00:00
Maurizio Cimadamore
f4daf3d7bf 7014715: javac returns different error code for certain failure(s)
Javac silently crashes when emitting certain kinds of resolution diagnostics

Reviewed-by: jjg
2011-02-03 09:38:19 +00:00
Maurizio Cimadamore
15959fbf11 6838943: inference: javac is not handling type-variable substitution properly
Free type-variables are being replaced with type-variables bound to forall type leading to unsoundness

Reviewed-by: jjg, dlsmith
2011-01-28 12:06:21 +00:00
Maurizio Cimadamore
1e776bc78a 6313164: javac generates code that fails byte code verification for the varargs feature
Method applicability check should fail if formal varargs element type is not accessible

Reviewed-by: jjg
2011-01-28 12:03:49 +00:00
Maurizio Cimadamore
b77effad6c 6968793: issues with diagnostics
Several diagnostic improvements

Reviewed-by: jjg
2011-01-24 15:44:51 +00:00
Maurizio Cimadamore
df54c56a04 6943278: spurious error message for inference and type-variable with erroneous bound
Type-inference should ignore erroneous bounds

Reviewed-by: jjg
2011-01-24 15:44:15 +00:00
Kelly O'Hair
84b5875f26 6962318: Update copyright year
Reviewed-by: xdono
2010-12-28 15:54:52 -08:00
Maurizio Cimadamore
3e65664acf 6995200: JDK 7 compiler crashes when type-variable is inferred from expected primitive type
15.12.2.8 should use boxing when expected type in assignment context is a primitive type

Reviewed-by: jjg
2010-11-23 11:08:43 +00:00
Lana Steuck
78db31beb6 Merge 2010-09-25 12:02:32 -07:00
Maurizio Cimadamore
cd3371e702 5088624: cannot find symbol message should be more intelligent
Resolve.java should keep track of all candidates found during a method resolution sweep to generate more meaningful diagnostics

Reviewed-by: jjg
2010-09-18 09:56:23 -07:00
Kelly O'Hair
fd65dbfc50 6982137: Rebranding pass 2 - missed copyright changes
Reviewed-by: mbykov
2010-09-09 16:29:40 -07:00
Maurizio Cimadamore
2801325742 6369605: Unconstrained type variables fails to include bounds
Unconstrained type-variables with recursive bounds are not inferred properly

Reviewed-by: jjg
2010-08-16 14:58:10 +01:00