Commit Graph

2412 Commits

Author SHA1 Message Date
Ilya Gorbunov 3f4430087e Do not call deprecated public getProgressionFinalElement, call internal getProgressionLastElement instead.
ProgressionIterators do not compute final element by themselves, but use one computed by Progression.
Update testdata for LoadBuiltinsTest
2015-11-13 21:38:22 +03:00
Ilya Gorbunov 5d4e72ed7f Correct deprecation replacement for Progression constructors.
Update testdata for LoadBuiltinsTest
2015-11-13 18:59:38 +03:00
Denis Zharkov e920ce709b Render captured type parameters in verbose mode 2015-11-13 14:59:04 +03:00
Denis Zharkov 6ae653e5a1 Implement stub building for inner types 2015-11-13 14:59:04 +03:00
Denis Zharkov 7500447e72 Implement serialization of inner types 2015-11-13 14:59:03 +03:00
Denis Zharkov eea898abb5 Introduce PossiblyInnerType class
Use it when rendering inner types, similar logic will be used in different subsystems
2015-11-13 14:58:58 +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 c57dbcc602 Fix substition of inner classes constructors
It should have substituted class as containing declaration
2015-11-13 14:47:28 +03:00
Denis Zharkov c5103f9ac4 Fix JavaClassifierType.getTypeArguments impls
Make them return arguments both for current classifier and for the outer one
2015-11-13 14:47:28 +03:00
Denis Zharkov deea0643ad Refine type arguments resolution and rendering
In case of type constructors captured parameters from outer classes

 #KT-5510 Fixed
 #KT-3112 Fixed
 #KT-6325 Fixed
 #KT-408  Fixed
 #KT-6337 Fixed
2015-11-13 14:47:28 +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 75f5cec190 Minor: remove inapplicable operator modifiers. 2015-11-11 16:41:40 +03:00
Mikhail Glukhikh 04f7805d52 Minor comment to CastClassReceiver 2015-11-11 13:30:19 +03:00
Ilya Gorbunov 6bac3e1986 Drop Ranges, Progressions, ProgressionIterators for Double and Float.
Undeprecate generic Comparable.rangeTo, but return private implementation instead.
Undeprecate contains and coerceIn for generic ranges.
2015-11-11 03:53:47 +03:00
Ilya Gorbunov 5ebb3d20e8 Change internal implementation of progression: use first, last instead of start, end
Keep the end value as it was passed to progression constructor.
Deprecate primary progression constructor and introduce factory method in companion object.
2015-11-11 03:53:40 +03:00
Ilya Gorbunov 2887338f01 Rename InclusiveRange to ClosedRange 2015-11-11 03:53:38 +03:00
Ilya Gorbunov 8a6821d53a Throw correct exception for zero increment.
Deprecate public functions in progression utils.
2015-11-11 03:53:35 +03:00
Ilya Gorbunov ffa8faab80 Make progression iterators internal. 2015-11-11 03:53:32 +03:00
Ilya Gorbunov 854d376988 Eliminate byte and short ranges and progressions from range construction functions' return type. 2015-11-11 03:53:29 +03:00
Ilya Gorbunov 9eb5ba910c Do not reimplement Iterable until Progression is dropped. 2015-11-11 03:53:28 +03:00
Ilya Gorbunov 6ac0ac01b3 Deprecate Byte and Short ranges and progressions.
Inherit TRange from TProgression.
Remove InclusiveRangeProgression and leave generic Progression deprecated.
2015-11-11 03:53:26 +03:00
Ilya Gorbunov e699ce9e95 Introduce InclusiveRange and InclusiveRangeProgression and deprecate Range and Progression interfaces. 2015-11-11 03:53:25 +03:00
Ilya Gorbunov 16d56355c3 Special crafting of ClassId when implClassName is nested DefaultImpls 2015-11-11 03:53:20 +03:00
Nikolay Krasko 774b3269d6 Remove paragraph char - it ruins builds sometimes 2015-11-10 20:46:17 +03:00
Mikhail Glukhikh 0d35033106 Introduction of CastedClassReceiver and its handling in codegen #KT-6744 Fixed
ClassReceiver converted to Kotlin
Also #KT-7617 Fixed
2015-11-10 20:20:51 +03:00
Alexander Udalov 77138ecdb7 Add intrinsic functions to check availability of classes at runtime
Will be used whenever we add a new class to the runtime and use it in the
generated code: we'll now generate a call to one of these functions in <clinit>
of each class file which references the newly added class
2015-11-09 22:24:42 +03:00
Alexander Udalov 596a74d288 Code cleanup in reflection.jvm, generator scripts 2015-11-09 22:24:41 +03:00
Alexander Udalov 1576160390 Improve implementation of callable reference superclasses
Previously to use reflection on them, you had to wrap an already created object
with a "Reflection.function" or "Reflection.propertyN" call, which the JVM
back-end was doing. This was not optimal in several senses and current solution
fixes that
2015-11-09 22:24:40 +03:00
Alexander Udalov 7d32524754 Do not fail with type cast when not needed in reflection.jvm 2015-11-09 22:24:40 +03:00
Alexander Udalov 1c889c4e67 Support equals, hashCode, toString for ::-references without reflection 2015-11-09 22:24:39 +03:00
Alexander Udalov baa28de865 Add factory methods to create class references with internal names
Will be used in future versions to support references to mapped mutable
collections
2015-11-09 22:24:39 +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 c73d091c52 Minor. Fix compilation(KT-9898 Impossible implement kotlin interface in java) 2015-11-06 00:01:31 +03:00
Stanislav Erokhin b3e69a5f5d Created common supertype for HierarchicalScope and MemberScope-- ResolutionScope 2015-11-06 00:01:30 +03:00
Stanislav Erokhin c4582d0e0c Replace function MemberScope.getContainingDeclaration() to property ownerDescriptor 2015-11-06 00:01:30 +03:00
Valentin Kipyatkov 58fc0b6ec8 Fixed special item after "super." not working for fake override super 2015-11-05 17:47:55 +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 1eb9bf2592 Minor: remove accidentally forgotten Deprecated annotation 2015-11-04 22:15:37 +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