Andrey Breslav
f5aed51fd0
TypeUtils.containsSpecialType() fixed to account for flexible types
2014-10-13 15:38:14 +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
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
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
1dbfe5483a
Fix isNullableType() to always consider flexible types, even if they contain type parameters
2014-10-13 15:38:01 +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
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
549df3c0eb
Equality for flexible types
2014-10-13 15:37:48 +04:00
Andrey Breslav
b665a1998b
Supertypes should not be flexible
2014-10-13 15:37:47 +04:00
Andrey Breslav
195274370f
Fix the case of safe call and elvis operators: flexible types may be nullable
2014-10-13 15:37:46 +04:00
Andrey Breslav
45c1fa3741
Support flexible types in DataFlowValues
2014-10-13 15:37:46 +04:00
Andrey Breslav
f7de0e274c
TypeSubstitutor respects flexible types
2014-10-13 15:37:45 +04:00
Andrey Breslav
f11095b1d0
Minor. DelegatingFlexibleType moved to top level
2014-10-13 15:37:45 +04:00
Andrey Breslav
687fdce30a
Support flexible types in TypeCheckingProcedure
2014-10-13 15:37:44 +04:00
Andrey Breslav
6c50e1b237
Render flexible types in debug mode
2014-10-13 15:37:43 +04:00
Andrey Breslav
e268e74fa3
Flexible types added to JDR
...
So far they act exactly like inflexible ones
2014-10-13 15:37:42 +04:00
Andrey Breslav
ad8de070fa
A flag in the JDR to govern usage of platform types
2014-10-13 15:37:42 +04:00
Pavel V. Talanov
6eae62c235
Do not report NON_FINAL_MEMBER_IN_FINAL_CLASS on open members in enum classes
2014-10-10 17:43:32 +04:00
Pavel V. Talanov
4136c80358
Do not report ABSTRACT_MEMBER_NOT_IMPLEMENTED on enum classes
...
Partial fix of KT-3454
2014-10-10 17:43:31 +04:00
Evgeny Gerashchenko
38514673bf
Clarified assertion for EA-53060.
2014-10-10 16:00:25 +04:00
Michael Bogdanov
1944f75802
Skip default methods on single abstract method search
...
Fix for KT-4886: SAM conversion doesn't work for interfaces with default methods
#KT-4886 Fixed
2014-10-09 17:15:46 +04:00
Nikolay Krasko
555119f59a
Exceptions during 'compute' in storage manager must be processed with exception strategy
...
#KT-5134 Fixed
2014-10-02 23:37:49 +04:00
Svetlana Isakova
20f3403c80
Rename: this object, receiver argument -> dispatch receiver, extension receiver
2014-10-01 18:52:51 +04:00
Nikolay Krasko
7bf622dd26
Rewrite to Kotlin: super navigation markers methods
2014-10-01 18:02:57 +04:00
Michael Bogdanov
469db95662
Inline markers added
2014-09-29 17:16:57 +04:00
Pavel V. Talanov
54799b1a34
Internal visibility works the same as public
...
Fix test data
This change is needed to preserve old behaviour for M9
isFriend() utilities become unused after this change
2014-09-26 22:06:32 +04:00
Alexander Udalov
19497262b3
Don't lookup built-in classes by invalid names
...
#KT-5869 Fixed
2014-09-26 18:48:43 +04:00
Alexander Udalov
96308aa14e
Increase ABI version
...
After changes to package part names and top level closure names
2014-09-26 10:23:21 +04:00
Alexander Udalov
c57441b51b
Use '$' instead of '-' in package part class names
...
Otherwise some tools break (e.g. CheckMethodAdapter in ASM, used in generic
signature writer) because they expect class names to be Java identifiers.
Some tests fixed, some will be fixed in future commits
2014-09-26 10:22:20 +04:00
Valentin Kipyatkov
e30998d3c1
Moved an utility method
2014-09-25 17:10:23 +04:00