Denis Zharkov
6a22d75dd7
Drop TypeAliasDeserializer
...
Currently it's only used for local type aliases, while code in
'deserializeTypeAlias' works properly only for nested or top-level type
aliases.
Also it seems that serialization of types based on local type aliases
doesn't work now anyway (see KT-13692)
2016-09-05 17:54:36 +03:00
Denis Zharkov
86c1dbe7b5
Fix decompilation of types based on local classifiers
...
If deserializing a type with arguments based on a local class for
decompiler, then just return Any type (without arguments).
Previously Any constructor was used with serialized arguments, that lead
to exception
Note that in case of deserialization for compiler nothing changes about
local-classes-based types (LocalClassifierResolverImpl is just inlined)
#KT-13408 Fixed
2016-09-05 17:54:36 +03:00
Alexander Udalov
dc689ff514
Fix concurrent access issues in CallableReference implementations
...
Because of multiple reads from the same non-volatile variable, NPE was possible
to achieve in a multi-threaded application
2016-09-05 16:44:54 +03:00
Alexander Udalov
8fb5858dae
Fix occasional NPE from reflection initialization
...
This could happen when a .jar containing Kotlin stdlib and reflection classes
was launched with 'java -jar'
2016-09-05 16:44:54 +03:00
Alexander Udalov
9da1840523
Minor, rename ConsPStack$1 -> ConsPStack$Itr
...
To somewhat improve stack traces (see
http://stackoverflow.com/questions/34214290/kotlin-massive-amounts-of-conspstack-how-can-i-avoid/34214718#34214718 )
2016-09-05 16:44:54 +03:00
Alexander Udalov
f4a1aa640e
Optimize KClass creation from Class instance
...
Don't create unnecessary iterator every time in HashPMap.get (see
https://github.com/hrldcpr/pcollections/pull/41 ). Also fix a warning and remove
misleading comment
2016-09-05 16:44:54 +03:00
Alexander Udalov
d0d1824e7d
Optimize argument array creation in reflection call
2016-09-05 16:44:54 +03:00
Dmitry Petrov
e0cdad30e4
KT-13181 Unresolved reference when referencing a type alias from a different module
...
Add corresponding resolution code.
2016-09-02 10:18:23 +03:00
Stanislav Erokhin
8d2d5ea211
Minor refactoring in NewKotlinTypeChecker
2016-09-01 18:00:18 +03:00
Stanislav Erokhin
ea2d95fa79
Minor. Change predicate type from KotlinType to UnwrappedType.
2016-09-01 18:00:17 +03:00
Alexey Sedunov
c244baf087
Misc: Improve IDE rendering of type aliases
2016-08-31 11:28:02 +03:00
Alexander Udalov
26156b137f
Micro optimizations to type rendering in DescriptorRendererImpl
...
Do not create StringBuilder instances when the resulting String will be
appended to some other StringBuilder anyway. This, and a couple of micro
FqNameUnsafe-related optimizations, helps reduce memory traffic in Kotlin
reflection when rendering is involved (toString() is called on reflective
objects)
2016-08-26 15:17:02 +03:00
Stanislav Erokhin
b695f5edd9
Refactoring. Some simplifications in OverloadingConflictResolver.
2016-08-24 11:10:34 +03:00
Ilya Gorbunov
cf898ae357
Exclude exceptions from java.lang package for which type aliases exist in kotlin package.
...
Add relevant note to the type aliases.
2016-08-17 12:40:50 +03:00
Ilya Gorbunov
0d7819e011
Move exceptions to kotlin package in JS library, introduce type aliases for exceptions in kotlin package in JVM runtime.
...
#KT-18 Fixed
2016-08-17 12:40:50 +03:00
Ilya Gorbunov
afe1b7eab1
Allow to exclude specific types from packages imported by default.
2016-08-17 12:40:50 +03:00
Valentin Kipyatkov
12b1a99a6a
Initial implementation of loop-to-call-chain intention
2016-08-16 17:37:55 +03:00
Michael Bogdanov
7325baa06a
Fix for KT-13374: CompilationException: Inline function call with anonymous object implementing an interface by delegation
...
#KT-13374 Fixed
2016-08-16 10:47:01 +03:00
Alexander Udalov
18887f8bec
Rename CompanionObjectMapping.hasMappingToObject -> isMappedIntrinsicCompanionObject
2016-08-15 19:41:47 +03:00
Alexander Udalov
5b1ee13db8
Make KClasses for primitives equal to KClasses for wrapper types
...
Both primitive int and wrapper type java.lang.Integer are represented by the
single type kotlin.Int in Kotlin, so inequality between the corresponding
KClasses was confusing here. To keep the old behavior, one may call 'k1.java ==
k2.java' instead of `k1 == k2`
#KT-13462 Fixed
2016-08-15 19:41:47 +03:00
Alexander Udalov
3efa738bc0
Fix NPE on .companionObjectInstance for built-in classes
...
#KT-13370 Fixed
2016-08-15 19:41:47 +03:00
Alexander Udalov
611899e9d3
Minor, make CompanionObjectMapping a singleton
2016-08-15 19:41:47 +03:00
Mikhail Glukhikh
6cf90cfc4e
Fix for SOE in VarianceChecker #KT-13401 Fixed
2016-08-11 13:04:58 +03:00
Alexey Sedunov
1b546d18ff
Override/Implement Members: Do not expand type aliases in the generated members. Retain abbreviated types during flexible type approximation
...
#KT-13244 Fixed
2016-08-10 11:45:36 +03:00
Alexey Sedunov
59a714ca5c
Presentation: Render function signature in RefactoringDescriptionLocation
...
#KT-12943 Fixed
2016-08-10 11:45:29 +03:00
Alexander Udalov
7f142253bf
Reflection: simplify KTypeProjection
2016-08-08 17:54:11 +03:00
Alexander Udalov
a7f4037206
Reflection: change order of arguments of inner generic type
...
As in KClassifier.createType and everywhere in the compiler, specify arguments
for the innermost type first. This is more convenient to use because generally
the construction/introspection of such type starts from the innermost class
anyway (i.e. something like generateSequence can be used, without the need to
call .reverse() in the end)
2016-08-08 17:54:11 +03:00
Alexander Udalov
89d69bc7eb
Reflection: add KClass.createInstance
2016-08-08 17:54:11 +03:00
Alexander Udalov
0525b1e6c1
Reflection: add KClass.declaredMembers
2016-08-08 17:54:11 +03:00
Alexander Udalov
30b7334e48
Reflection: add utilities to filter parameters by kind and name
2016-08-08 17:54:11 +03:00
Alexander Udalov
d78988a12a
Reflection: add KVisibility, KClass.visibility, KCallable.visibility
2016-08-08 17:54:11 +03:00
Alexander Udalov
7e317f7a7c
Reflection: add API for declaration modifiers
...
#KT-10447 Fixed
2016-08-08 17:54:11 +03:00
Alexander Udalov
ada81923dc
Reflection: add KClass.isInstance, KClass.cast, KClass.safeCast
...
#KT-11284 Fixed
2016-08-08 17:54:11 +03:00
Alexander Udalov
3702f4a7a7
Reflection: add KClass.{isSubclassOf,isSuperclassOf}, KType.{isSubtypeOf,isSupertypeOf}
...
The behavior in primitives.kt is likely to be reconsidered
#KT-8998 Fixed
2016-08-08 17:54:11 +03:00
Alexander Udalov
4cd252d9d5
Reflection: add KClass.{supertypes,superclasses,allSupertypes,allSuperclasses}
...
Some things are not implemented yet for allSupertypes, such as KType->Type
mapping of types and generic substitution of built-in types
2016-08-08 17:54:11 +03:00
Alexander Udalov
486ea62c72
Reflection: add KType.withNullability
2016-08-08 17:54:11 +03:00
Alexander Udalov
f958483e56
Reflection: deprecate KClass.defaultType
...
Its semantics were unclear and its javaType was implemented incorrectly (it
should have returned ParameterizedType with star projections for generic type)
2016-08-08 17:54:11 +03:00
Alexander Udalov
6b79782951
Reflection: add KClassifier.starProjectedType
...
#KT-8998 In Progress
2016-08-08 17:54:11 +03:00
Alexander Udalov
1edf3c7809
Reflection: add KClassifier.createType
...
#KT-8998 In Progress
2016-08-08 17:54:11 +03:00
Alexander Udalov
153e837a84
Reflection: add KType.jvmErasure
...
#KT-8998 In Progress
2016-08-08 17:54:11 +03:00
Alexander Udalov
e760b5ed53
Reflection: add KTypeParameter.toString
...
The test covers different type parameters with and without bounds, in case we
decide to also output upper bounds in toString
2016-08-08 17:54:11 +03:00
Alexander Udalov
170ea4dead
Reflection: add KVariance, KTypeParameter.{variance,upperBounds,equals,hashCode}
2016-08-08 17:54:11 +03:00
Alexander Udalov
127e7ab5b7
Reflection: add KClass.typeParameters, KCallable.typeParameters
...
Inheritance from KCallable is removed in kt9078.kt because it was irrelevant to
the test and because it gets in the way of modification of KCallable
2016-08-08 17:54:11 +03:00
Alexander Udalov
f69cc01f8e
Reflection: add KTypeProjection and KType.arguments
...
#KT-8998 In Progress
2016-08-08 17:54:11 +03:00
Alexander Udalov
c1dd831e65
Reflection: add KType.classifier
...
#KT-8998 In Progress
2016-08-08 17:54:11 +03:00
Alexander Udalov
2ab0f489b5
Reflection: add KClassifier, KTypeParameter, KTypeParameter.name
...
The ability to obtain classifier from types is going to be added later
2016-08-08 17:54:11 +03:00
Alexander Udalov
5e3efe0e58
Reflection: improve support of built-in classes in 'toJavaClass'
...
Also support mock class descriptor created for java.io.Serializable. This will
be needed (and covered with tests) later for correct implementation of advanced
reflection API
2016-08-08 17:54:11 +03:00
Pavel V. Talanov
252b8ec6db
Add assertions to prohibit creating LazyJavaClassDescriptor by KtLightClass
...
Diagnosing KT-12966
2016-08-03 17:29:08 +03:00
Pavel V. Talanov
30892e0154
KtLightClassForDecompiledDeclaration is now marked by KtLightClassMarker
...
Rename: KtJavaMirrorMarker -> KtLightClassMarker
Introduce code to be able to tell light classes from source and binaries apart in 'frontend.java'
2016-08-03 17:29:06 +03:00
Stanislav Erokhin
aa91b5a1b0
KT-13264 IAE: Argument for @NotNull parameter 'errorClass' createErrorTypeConstructorWithCustomDebugName must not be null
...
#KT-13264 Fixed
2016-07-29 17:53:12 +03:00