Denis Zharkov
188bcf0a03
Introduce TypeConstructorSubstitution.create
...
After latest changes type constructors of inner classes contains
additional type parameters that are copies of ones from outer class.
Their indices are correct, but they used only for subtyping check,
all entries within inner classes are still refers to original
descriptors having different indices.
Example:
class Outer<E> {
inner class Inner<F> { // Inner's type constructor looks like Inner<F, E>
fun foo(): E // refers to E in outer having index 0
}
}
Indexed substitution does not work here because of intersecting indices,
so we replace it with common map substituion in such cases.
2015-11-13 14:47:29 +03:00
Denis Zharkov
990bd7e71d
Correct parameters of inner's class type constructor
...
Now it contains copies of outer's class constructor parameters
They are appended just after real type parameters
2015-11-13 14:47:28 +03:00
Denis Zharkov
d614adcd2a
Obtain type parameters of constructor from containing class
...
Effectively this commit is just inlining of 'typeParameters' parameter
2015-11-13 14:47:28 +03:00
Denis Zharkov
c9aa75259b
Introduce ClassDescriptor.declaredTypeParameters
...
Should be a subset of type constructor's parameters
2015-11-13 14:47:28 +03:00
Ilya Gorbunov
16d56355c3
Special crafting of ClassId when implClassName is nested DefaultImpls
2015-11-11 03:53:20 +03:00
Dmitry Jemerov
e64a270d1a
more renames to get rid of "Jet" in class and method names
2015-11-09 19:07:11 +01:00
Ilya Gorbunov
f3ff2e2e76
Replace deprecated join with joinToString
2015-11-06 01:12:00 +03:00
Stanislav Erokhin
55157df3eb
Removed MemberScope.ownerDescriptor
2015-11-06 00:01:35 +03:00
Stanislav Erokhin
22f78b148c
Removed usages of MemberScope.ownerDescriptor property.
2015-11-06 00:01:34 +03:00
Stanislav Erokhin
b8e828e040
Minor. Changed signature of SamConversionResolver.resolveSamConstructor
2015-11-06 00:01:33 +03:00
Stanislav Erokhin
c4582d0e0c
Replace function MemberScope.getContainingDeclaration() to property ownerDescriptor
2015-11-06 00:01:30 +03:00
Stanislav Erokhin
2c3f58eeb7
Renamed methods in MemberScope from getSmth to getContributedSmth
2015-11-05 14:34:00 +03:00
Stanislav Erokhin
6f9d9759ce
Renamed KtScope to MemberScope
2015-11-05 14:34:00 +03:00
Alexander Udalov
748c0e7149
Don't assert that annotation class has constructor in AnnotationDeserializer
...
#KT-9758 Fixed
2015-11-05 13:42:31 +03:00
Zalim Bashorov
1e51e333ab
Minor: add comments to LazyJavaStaticClassScope, LazyJavaPackageScope and StaticScopeForKotlinClass
2015-11-04 22:11:34 +03:00
Zalim Bashorov
a6855116b8
Track lookups for nested/inner Java classes
2015-11-04 22:09:55 +03:00
Stanislav Erokhin
a90ca14033
Removed KtScope.Empty and created util function emptyScope
2015-11-04 14:28:28 +03:00
Stanislav Erokhin
f7629b0c84
Removed getAllDescriptors() and getOwnDeclaredDescriptors() from KtScope
2015-11-04 14:28:25 +03:00
Stanislav Erokhin
6412df2e0b
Change return type of KtScope.getProperties()
2015-11-04 12:41:32 +03:00
Stanislav Erokhin
7cd667c0e3
Removed unused methods from KtScope.
2015-11-04 12:41:31 +03:00
Pavel V. Talanov
dc1fbe89ec
J2K ValueParameterDescriptor inteface in one go
2015-11-02 18:38:30 +03:00
Zalim Bashorov
2741215ed2
Don't track lookups from deserializer & java loader
2015-11-02 18:18:35 +03:00
Zalim Bashorov
5a6bcea826
Introduce location in SamConversionResolver::resolveSamConstructor and provide right location in usages
2015-11-02 18:18:33 +03:00
Zalim Bashorov
c6aa94d30a
Track lookups in LazyJavaScope ans LazyJavaPackageScope
2015-11-02 18:18:30 +03:00
Zalim Bashorov
81a288b42c
Add LookupTracker to DeserializationComponents
2015-11-02 18:18:28 +03:00
Denis Zharkov
b6f724cf58
Disconnect loops between upper bounds of type parameters
...
#KT-9759 Fixed
2015-10-31 09:33:46 +03:00
Denis Zharkov
18097c0ab7
Introduce 'SupertypeLoopsResolver' and inject it's impls
2015-10-31 09:33:46 +03:00
Denis Zharkov
291f0e57d1
Introduce FunctionDescriptor.initialSignatureDescriptor
...
Mostly it's needed for backend to extract descriptor with initial signature
For example:
class A implements CharSequence {
char charAt(int index) {}
}
We see `charAt` this method as `fun get(index: Int): Char`, but in backend it
matters what signature had this descriptor before.
2015-10-29 21:05:51 +03:00
Denis Zharkov
94803ce1c4
Collect overrides of special builtin members in super types
...
#KT-9695 Fixed
2015-10-29 21:05:26 +03:00
Denis Zharkov
060178e53f
Minor. Convert extension to common function
2015-10-29 18:41:51 +03:00
Denis Zharkov
50125f612e
Unify creation of special builtin functions
...
Create all of them --- both renamed and with de-erased signature ---
within 'computeNonDeclaredFunctions'.
This helps to get rid of open 'resolveMethodToFunctionDescriptor'
and guarantees that method inside 'isVisibleAsFunction'
is always without any magic.
2015-10-29 18:41:51 +03:00
Denis Zharkov
c855d3fad9
Minor. Extract searchMethodsByNameWithoutBuiltinMagic and weaken return types
2015-10-29 18:41:51 +03:00
Denis Zharkov
80bf7316c7
Add 'preserveSource' parameter to methods making substitution copies
2015-10-29 18:41:51 +03:00
Denis Zharkov
4e7731f41f
Refactor 'isVisibleAsFunction' to make it work with SimpleFunctionDescriptor
...
Also inline 'resolveMethodToFunctionDescriptorWithName'
2015-10-29 18:41:50 +03:00
Denis Zharkov
ce34550c42
Introduce and implement SimpleFunctionDescriptor.createRenamedCopy
2015-10-29 18:41:50 +03:00
Alexander Udalov
925b0e567e
Minor, delete leftovers from package part refactorings
2015-10-28 21:51:19 +03:00
Alexander Udalov
d6e87c50ab
Don't use TypeIntersector when loading generic Java constructors
...
This is not entirely type-safe but this case is so rare that hardly anyone will
be able to spot the change
2015-10-28 19:17:56 +03:00
Alexander Udalov
d29757d927
Make upper bounds of type parameter a list instead of a set
...
The same for lower bounds, also refactor type parameter implementations
2015-10-28 19:11:56 +03:00
Alexander Udalov
1ce5f8458c
Extract ClassMapperLite, add enlightening comment
2015-10-28 19:11:55 +03:00
Alexander Udalov
8a89662ea5
Remove FqNameBase, simplify FqName and FqNameUnsafe
2015-10-28 19:11:53 +03:00
Alexander Udalov
894a97a549
Rename field for property metadata cache to prevent problems in inline
2015-10-28 19:11:51 +03:00
Mikhail Glukhikh
55c1addb93
Workaround for a part of KT-9700: top-level Java classes with private visibility are considered package private
2015-10-27 18:27:41 +03:00
Dmitry Petrov
09f0b3fe87
KT-9721:
...
- Kotlin/JS still uses package facades.
Handle them properly in StubClassBuilder parentStack.
- Generate backend-related diagnostics in IDE
using light class generation for file facades.
- Drop PackageFacadeStubCache.
2015-10-26 19:37:52 +03:00
Mikhail Glukhikh
d0e01153ec
Effective visibility: java package-private is now considered as equivalent to Kotlin internal #KT-9755 Fixed
2015-10-26 15:00:14 +03:00
Alexey Sedunov
9c360ef05a
Find Usages: Look for as-property usages of Java methods
2015-10-24 19:50:53 +03:00
Denis Zharkov
d674aa1427
Refine signature mapping for special overrrides from Java
...
They have special JVM descriptor only when they are not inherited from
Kotlin super class
2015-10-21 17:51:43 +03:00
Denis Zharkov
f3a652de2f
Minor. Add assertion about same modality of accessors
2015-10-21 17:51:43 +03:00
Denis Zharkov
c46b766fea
Load special property from Java in cases of J-K-J hierarchy
2015-10-21 17:51:43 +03:00
Denis Zharkov
e31f751830
Minor. Move hasRealKotlinSuperClassWithOverrideOf to descriptor.loader.java
2015-10-21 17:51:43 +03:00
Denis Zharkov
1413cab1e6
Mixin kotlin.Number methods into j.l.Number member scope
...
#KT-9672 Fixed
2015-10-20 19:41:58 +03:00