Denis Zharkov
20cbceb56d
Add temporary hack for wildcards in Collections
...
By default we would render 'MutableCollection<String>.addAll(Collection<String>)' as
'(LCollection<String>;)' (without wildcard) because String is final and
effectively it's the same as '(LCollection<? extends String>;)'.
But that's wrong signature in a sense that java.util.Collection has different
signature: '(LCollection<? extends E>)'.
Actually the problem is much wider than collections,
it concerns any Java code that uses Kotlin classes with covariant
parameters without '? extends E' wildcards.
Temporary solution is just to hardcode/enumerate builtin methods
with special signature.
2015-12-01 08:20:59 +03:00
Ilya Gorbunov
e5dd719eec
Fix warning about incompatible types.
2015-12-01 01:35:19 +03:00
Alexander Udalov
9e7e75de12
Rename ExternalSignatureResolver -> SignaturePropagator
2015-11-27 23:34:47 +03:00
Alexander Udalov
57e75a1b28
Drop deprecated code in ModuleMapping, add TODO
2015-11-27 23:34:46 +03:00
Alexander Udalov
fb61dc7e81
Fix potential deadlock on lazy vs storage manager
2015-11-27 21:41:26 +03:00
Alexander Udalov
caa6cdb3f7
Remove obsolete code in KotlinBuilder, rename PackageClassUtils
2015-11-27 21:41:26 +03:00
Alexander Udalov
8594cfca46
Remove kotlin.jvm.internal.KotlinPackage and corresponding code
2015-11-27 21:22:04 +03:00
Alexander Udalov
8a5b63a669
Inline PLATFORM_TYPES = true, simplify signature propagation
2015-11-27 21:22:04 +03:00
Alexander Udalov
417a27f3b1
Minor, get rid of AlternativeMethodSignature in irrelevant place
2015-11-27 21:22:04 +03:00
Alexander Udalov
fa34ebac4a
Delete KotlinSignature and corresponding code
2015-11-27 21:22:04 +03:00
Yan Zhulanow
46ac3571d5
Fix "infix modifier required" errors in project
2015-11-27 15:51:11 +03:00
Zalim Bashorov
d1c5bd4526
Minor: remove unused parameter from LookupTracker.record
2015-11-27 15:08:06 +03:00
Denis Zharkov
a2627431f8
Minor. Cleanup and refine naming
2015-11-17 16:27:02 +03:00
Denis Zharkov
3b2719735e
Setup default values for type-safe bridges
...
#KT-9973 In Progress
2015-11-17 16:27:01 +03:00
Denis Zharkov
f5a086140e
Refine special bridge generating rule
...
Generate special bridge even in case current class has Kotlin superclass implementing
this builtin method, but that super class was generated without special bridge
(e.g. because it would have the same signature)
#KT-9901 Fixed
2015-11-17 15:41:49 +03:00
Valentin Kipyatkov
2e2dfcb4a0
"invoke" from function types do not have any meaningful parameter names
2015-11-16 18:24:37 +03:00
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