Commit Graph

1047 Commits

Author SHA1 Message Date
Alexander Udalov b587d3a78d Use JvmMetadataVersion where appropriate instead of bytecode version 2016-01-19 18:39:59 +03:00
Alexander Udalov bd47e9d47b Split JVM binary version into two: metadata and bytecode interface
Currently all code only uses the first one (JvmMetadataVersion), later the
bytecode interface version (JvmBytecodeBinaryVersion) will be used only in
codegen and reflection to avoid compiling against or calling methods with
unsupported conventions like default method naming and signature,
getters/setters naming etc.
2016-01-19 18:39:59 +03:00
Alexander Udalov fc88a0186f Drop obsolete synthetic class kind in KotlinClassHeader 2016-01-19 18:39:59 +03:00
Alexander Udalov 9552accaec Introduce BinaryVersion.isCompatible()
To decrease the chance to mix up the receiver and the first argument when
checking version compatibility
2016-01-19 18:39:59 +03:00
Alexander Udalov 04d335db15 Move version constants to corresponding BinaryVersion subclasses 2016-01-19 18:39:59 +03:00
Alexander Udalov 2f64680b63 Add several subclasses of BinaryVersion
To simplify comparison of expected vs actual versions in the future
2016-01-19 18:39:59 +03:00
Mikhail Glukhikh 7f2624c9a1 Handling of annotations on delegated property in descriptor loader & stub builder 2016-01-19 11:38:58 +03:00
Denis Zharkov f4613b8db1 Support foreign nullability annotations
#KT-10418 Fixed
 #KT-10594 Fixed
2016-01-14 19:24:10 +03:00
Denis Zharkov fd8a718797 Get rid of duplicating annotations FQ names usages
E.g. JETBRAINS_NOT_NULL_ANNOTATION were used both in NULLABLE_ANNOTATIONS
and for ANNOTATIONS_COPIED_TO_TYPES
2016-01-14 19:24:10 +03:00
Denis Zharkov 01fd3905be Minor. Fix typo in package name: typeEnhacement -> typeEnhancement 2016-01-14 19:24:10 +03:00
Dmitry Jemerov 3870bd04b8 core: cleanup 'public', property access syntax 2016-01-07 18:03:09 +01:00
Ilya Gorbunov 911adfd04d Cleanup in core modules 2015-12-29 18:04:14 +03:00
Ilya Gorbunov b71b336a69 Fix fq names of moved facade classes in imports and other code occurrences 2015-12-29 18:04:13 +03:00
Michael Bogdanov e671d05105 Companion public val annotated with @JvmFIeld or const 2015-12-29 16:45:23 +03:00
Denis Zharkov 7aaa6422b4 Introduce CustomSubstitutionCapability.substitutionToComposeWith
Mainly it's needed to prevent creation of subsituions composition
everytime we replacing arguments, because it's both unoptimal and wrong

When replace arguments in `A<E, F>` with <String, E> you got `A<String, String>`
as a result, that is unexpected.

But composition is only needed when previous substituion was abnormal
(e.g. RawSubsitution that should actually wrap new arguments), see RawTypes tests
2015-12-28 07:44:55 +03:00
Alexander Udalov 3513a64351 Move utilities about companion property fields to JvmAbi
To reuse that logic in reflection
2015-12-25 20:16:18 +03:00
Alexander Udalov 0685f06200 Drop outdated stuff from metadata annotations
Make KotlinLocalClass and KotlinInterfaceDefaultImpls not retained at runtime,
to be maybe deleted in the future
2015-12-25 20:16:18 +03:00
Alexander Udalov 0ecf04dcc5 Drop KotlinDelegatedMethod, simplify related code in codegen 2015-12-25 20:16:18 +03:00
Alexander Udalov 39c10867a0 Drop 'index' JVM binary format extension
Compute the JVM parameer index manually instead
2015-12-25 20:16:18 +03:00
Alexander Udalov dc6a176282 Drop old JVM binary format extensions: static in outer, impl class name 2015-12-25 20:16:18 +03:00
Alexander Udalov fc74759231 Drop old enum entries from binary format 2015-12-25 20:16:18 +03:00
Alexander Udalov 57b96f38a9 Minor, remove/simplify unnecessary utilities in util.runtime 2015-12-25 20:16:18 +03:00
Alexander Udalov ddcdc11099 Write and read built-ins binary version 2015-12-25 20:16:18 +03:00
Michael Bogdanov f870e365fa Removed accessors for const properties 2015-12-25 11:28:10 +03:00
Michael Bogdanov 2e73559f33 Removed 'INSTANCE$' field generation 2015-12-24 13:59:44 +03:00
Michael Bogdanov aeb6486473 Deprecated 'INSTANCE$' replaced with 'INSTANCE' 2015-12-24 13:59:43 +03:00
Alexander Udalov a7324ebad2 Minor, additional constructor for JvmPackagePartSource 2015-12-23 16:45:26 +03:00
Alexander Udalov 7170d488bd Fix package part class name calculation
Package part name can contain dollars
2015-12-23 16:45:26 +03:00
Alexander Udalov cd435c4130 Do not load implClassName JVM proto extension
Use JvmPackagePartSource instead for functions/properties in package parts,
check containing class kind for properties in interfaces
2015-12-23 16:45:26 +03:00
Alexander Udalov 03606c13aa Introduce PackagePartSource to store part class name in deserialized descriptors
Not used at the moment, will be in the following commits
2015-12-23 16:45:26 +03:00
Alexander Udalov 51cdb981f4 Remove obsolete code in IncrementalPackageFragmentProvider 2015-12-23 16:45:26 +03:00
Alexander Udalov f7969621d6 Don't read isStaticInOuter message for fields
It's only written for fields of properties of companion objects of classes;
handle that case manually in deserialization
2015-12-23 16:45:26 +03:00
Alexander Udalov 19372a7210 Minor, make ProtoContainer sealed with two subclasses 2015-12-23 16:45:26 +03:00
Stanislav Erokhin bcaa755c4e Fix compilation.
- rename isFinal extension property to avoid ambiguity with synthetic property in DeserializedClassTypeConstructor
- add explicit parameter to lambda File.listFiles
- return true from lambda Query.forEach
2015-12-18 22:49:26 +03:00
Stanislav Erokhin c725ed47f5 Replaced ReceiverValue.NO_RECEIVER to null. 2015-12-15 23:09:20 +03:00
Pavel V. Talanov 3f0d71411e KtDecompiledFile: hack to be able to navigate to builtIns on jvm
Which sometimes are loaded differently than they are rendered (see BuiltInClassesAreSerializableOnJvm)
2015-12-15 20:22:06 +03:00
Zalim Bashorov 976fbf32ba Minor: use List instead of Array as container in chained scopes 2015-12-15 20:07:37 +03:00
Zalim Bashorov 5008a66a5b ChainedScope -> ChainedMemberScope 2015-12-15 20:07:36 +03:00
Alexander Udalov 6f347f351a Load annotations on compiled Kotlin enum entries
#KT-10339 Fixed
2015-12-13 03:52:42 +03:00
Alexander Udalov 3e2eb8c1a0 Serialize/deserialize annotations on enum entries
#KT-10338 Fixed
2015-12-13 03:52:41 +03:00
Denis Zharkov 871fe7680b Load special override as HIDDEN in case of signature clash
#KT-10151 Fixed
2015-12-11 22:41:03 +03:00
Denis Zharkov 45c0bc3610 Add 'subClassDescriptor' parameter to ExternalOverridabilityCondition 2015-12-11 22:41:03 +03:00
Denis Zharkov 417ff281ee Split getOverriddenBuiltinWithJvmDescriptor into two extensions 2015-12-11 22:41:02 +03:00
Stanislav Erokhin 1dca49cecc Workaround for tower resolution algorithm in kotlin code. Will be investigated. 2015-12-11 17:01:01 +03:00
Mikhail Glukhikh 521b216602 Migration: Enum.values to Enum.values() 2015-12-11 11:11:38 +03:00
Pavel V. Talanov 280e00981f Load java: load annotations on enum entries 2015-12-10 11:12:23 +03:00
Mikhail Glukhikh 9a4eb2a368 Refactoring: ClassDescriptor.isFinal, no more Modality.isOverridable 2015-12-09 19:27:47 +03:00
Mikhail Glukhikh 5b72afe8a0 J2K: Modality.kt 2015-12-09 19:19:00 +03:00
Stanislav Erokhin 11c86405bf Fix ClassKind for Serializable and change ClassKind to INTERFACE for error classes. 2015-12-08 00:16:16 +03:00
Denis Zharkov 95cecdbc42 Support overrides of generic methods with erased version in Java 2015-12-03 18:19:36 +03:00