Commit Graph

17924 Commits

Author SHA1 Message Date
Andrey Breslav f5aed51fd0 TypeUtils.containsSpecialType() fixed to account for flexible types 2014-10-13 15:38:14 +04:00
Andrey Breslav a737352b5d Assertions when approximating platform types in delegation by expression 2014-10-13 15:38:13 +04:00
Andrey Breslav f1c66fa6b0 Assertions on approximation of platform types to non-null types
- for most expressions (ExpressionCodegen.genQualified)
2014-10-13 15:38:13 +04:00
Andrey Breslav 3d5d3e00e3 Minor. @TestDataFlie added for naviagtion 2014-10-13 15:38:12 +04:00
Andrey Breslav 57bffaf8fa All JetType subinterfaces migrated to capabilities 2014-10-13 15:38:12 +04:00
Andrey Breslav 013dd7261e Extensible specificity expressed as a type capability 2014-10-13 15:38:11 +04:00
Andrey Breslav 4b24c96cca Type capabilities introduced to facilitate extensibility of the type representation
This approach: returning adapter objects by class is crucial, because it is delegation-proof.
Simply extending interfaces in particular implementations fails when we wrap types in DelegatedType subclasses
2014-10-13 15:38:11 +04:00
Andrey Breslav 6564231040 Descriptor test data for diagnostic tests fixed 2014-10-13 15:38:10 +04:00
Andrey Breslav 25efd6684f Missing test data generated 2014-10-13 15:38:10 +04:00
Andrey Breslav 52ed640a2b Visibility fixed 2014-10-13 15:38:09 +04:00
Andrey Breslav aea978cf90 Do not render type arguments as outermost 2014-10-13 15:38:09 +04:00
Andrey Breslav fd3f929a11 Guessing class ids for external annotations 2014-10-13 15:38:08 +04:00
Andrey Breslav fe2fb60daf Approximating flexible types in descriptor renderer 2014-10-13 15:38:07 +04:00
Andrey Breslav 40932f84c8 isFlexible() turned into a method in JetType
Otherwise delegated types were never recognized as flexible
2014-10-13 15:38:07 +04:00
Andrey Breslav 91b0b83ec3 Java declaration annotations are treated as type annotations
This is needed, for example, to approximate flexible types correctly when rendering them in the code
2014-10-13 15:38:06 +04:00
Andrey Breslav bd21e487fc Unused class removed 2014-10-13 15:38:06 +04:00
Andrey Breslav d25a76e044 Disabling @KotlinSignature checks in PLATFORM_TYPES mode 2014-10-13 15:38:05 +04:00
Andrey Breslav ea3215b361 Massive test data update for compiledJava 2014-10-13 15:38:05 +04:00
Andrey Breslav 0b6a4df4f4 The case of Integer.getInteger("1", 2) fixed (was: OVERLOAD_RESOLUTION_AMBIGUITY) 2014-10-13 15:38:04 +04:00
Andrey Breslav 837353d9fd Skip alternative signatures in PLATFORM_TYPES mode, but use parameter names 2014-10-13 15:38:03 +04:00
Andrey Breslav 50aa918791 Failing test for type inference 2014-10-13 15:38:02 +04:00
Andrey Breslav f5cc3e1a92 Use TypeUtils.isNullableType() in codegen 2014-10-13 15:38:02 +04:00
Andrey Breslav 1dbfe5483a Fix isNullableType() to always consider flexible types, even if they contain type parameters 2014-10-13 15:38:01 +04:00
Andrey Breslav 107480657a Spec document added 2014-10-13 15:38:00 +04:00
Andrey Breslav d1214d2368 Another TypeUtils.isNullableType() introduced 2014-10-13 15:38:00 +04:00
Andrey Breslav 12d18533e8 Recursion depth in CommonSupertypes is bounded by maxDepth + 3 2014-10-13 15:37:59 +04:00
Andrey Breslav 364a7a6574 Do not overuse makeNullableAsSpecified in TypeSubstitutor 2014-10-13 15:37:59 +04:00
Andrey Breslav 920769d36d Fold standard flexible types in shortNames mode 2014-10-13 15:37:58 +04:00
Andrey Breslav 220c360081 Null-aware types introduced
Flexible types should drive their own conversions to nullable/not-null
2014-10-13 15:37:58 +04:00
Andrey Breslav 969beb7898 Account for substitutions of one variable for another (it must remain a variable) 2014-10-13 15:37:57 +04:00
Andrey Breslav bdbd469aad Do not wrap flexible types into Nullable/NotNull types 2014-10-13 15:37:57 +04:00
Andrey Breslav 141e731f39 Constraint Foo on T! should be turned into Foo! on T 2014-10-13 15:37:56 +04:00
Andrey Breslav 6cb1d2e3f7 Lower bound must be a subtype of the upper bound.
The change in CommonSupertypes:

 We used to say that commonSupertype(Inv<A>, Inv<B>) = Inv<in Intersect(A, B)). This is counter-intuitive, should be Inv<out commonSupertype(A, B)>
2014-10-13 15:37:56 +04:00
Andrey Breslav e232697da1 CommonSupertypes support for flexible types 2014-10-13 15:37:55 +04:00
Andrey Breslav 583694a450 Flexible types for primitive arrays 2014-10-13 15:37:54 +04:00
Andrey Breslav 8134d097e3 Another portion of test data fixed 2014-10-13 15:37:54 +04:00
Andrey Breslav a3d9ff65aa Wrong "USELESS_ELVIS" fixed 2014-10-13 15:37:54 +04:00
Andrey Breslav c3c72fc528 Switching off propagation of types and KotlinSignatures for platform types 2014-10-13 15:37:53 +04:00
Andrey Breslav fefadaa171 Rendering platform type for java.util.Map.Entry as kotlin.(Mutable)Map.(Mutable)Entry 2014-10-13 15:37:53 +04:00
Andrey Breslav dd2e95b3bc Substitution implemented for flexible occurrences of Java type parameters 2014-10-13 15:37:52 +04:00
Andrey Breslav bf53222bd9 Flexible types in SAM conversions 2014-10-13 15:37:51 +04:00
Andrey Breslav 2529bb24d1 Don't create flexible types for ".class" expressions in annotation arguments 2014-10-13 15:37:51 +04:00
Andrey Breslav c699fa96d9 Make not-null compile-time constants non-flexible 2014-10-13 15:37:51 +04:00
Andrey Breslav 867956729b Don't create platform types for annotation members 2014-10-13 15:37:50 +04:00
Andrey Breslav bdf7e924b5 Rendering flexible types with "!" and optional parts 2014-10-13 15:37:50 +04:00
Andrey Breslav c2a03d60f0 Better support for forced resolve while debugging 2014-10-13 15:37:49 +04:00
Andrey Breslav b4f26bde44 Support forced resolve for lazy flexible types 2014-10-13 15:37:49 +04:00
Andrey Breslav 549df3c0eb Equality for flexible types 2014-10-13 15:37:48 +04:00
Andrey Breslav a39d2bc24f Failing test isolated 2014-10-13 15:37:48 +04:00
Andrey Breslav b665a1998b Supertypes should not be flexible 2014-10-13 15:37:47 +04:00