Pavel V. Talanov
7d98103c0c
overriddenDescriptors is empty for java static property and function declarations
...
Fake overrides are still created for java static with non-empty overriddenDescriptors
Add tests for inheriting visibility for java static members
Add test: check that java static declarations that shadow deprecated declarations should not be deprecated
Add test for corner case where "overriding" java static constant led to incorrect type in inheritor
Fix test data for existing tests
2016-02-11 14:08:14 +03:00
Pavel V. Talanov
7e78e8d8ab
Refactor: Move and rename OverridingUtil.DescriptorSink -> OverridingStrategy
2016-02-11 14:08:13 +03:00
Nikolay Krasko
99a693a14b
Too many empty ArrayList stored for arguments
2016-02-08 16:43:54 +03:00
Denis Zharkov
c879f83037
Fix primitive types mapping
...
Use boxed version if type was enhaced to not-nullable
2016-02-08 16:40:47 +03:00
Denis Zharkov
18e7272a1e
Do not force overridden descriptors computation
...
Currently 'overriddenDescriptors' of substituted function is lazy
and in most cases it's unnecessary to compute it
(it's enough to use the same field from 'original')
2016-02-08 16:40:47 +03:00
Denis Zharkov
fae6de9acd
Replace 'addOverriddenDescriptor' with 'setOverriddenDescriptors'
...
It helps to get rid of redundant SmartSets (e.g. for top-level functions)
2016-02-08 16:40:47 +03:00
Denis Zharkov
c1f57b743b
Do not build enhanced descriptors if they are unchanged
2016-02-08 16:40:47 +03:00
Denis Zharkov
924d706e79
Release original Java descriptors while enhancing
...
It's both more correct and helps to release memory retained by
descriptor before enhancement
2016-02-08 16:40:47 +03:00
Alexander Udalov
8800782c83
Move constants from JvmAnnotationNames closer to usages
2016-02-06 15:53:55 +05:30
Alexander Udalov
2f5a6ac465
Minor, add extra constant to JvmAnnotationNames, drop unneeded utility
2016-02-06 15:53:55 +05:30
Alexander Udalov
5de1cf3bb4
Do not write old metadata annotations to bytecode
2016-02-06 15:53:55 +05:30
Ilya Gorbunov
a12fe2c18a
Do not use inline-only in java
2016-02-01 22:09:17 +03:00
Denis Zharkov
6b33e3fb67
Minor. Rename variables and add assertion
2016-01-29 14:36:53 +03:00
Denis Zharkov
11a96ee8c8
Introduce not null type parameter capability
...
Java nullability annotations may generate types that currently are not denotable in Kotlin:
class Java {
void <F> foo(@NotNull F f) {}
}
Type of given value parameter should be not nullable under any substitution:
String/String?/String! because of annotation contract.
NB: Currently there is no full analogues for such types in pure kotlin
2016-01-28 08:36:23 +03:00
Denis Zharkov
08dd675fcd
Minor. Drop unused property
2016-01-28 08:36:23 +03:00
Denis Zharkov
6542d091ee
Support generic constructors defined in Java
...
#KT-10686 Fixed
#KT-10410 Fixed
2016-01-28 08:35:18 +03:00
Ilya Gorbunov
744a7a83f7
Cleanup RC deprecations in compiler and plugin.
2016-01-27 18:34:30 +03:00
Alexey Tsvetkov
56942930c9
Minor: remove unreachable code
2016-01-27 12:28:44 +03:00
Yan Zhulanow
0304bd1dc1
More precise diagnostic messages about "operator modifier is not applicable"
2016-01-26 17:21:44 +03:00
Denis Zharkov
f560799bb7
Support top level wildcard types
...
#EA-73650 Fixed
2016-01-26 16:41:29 +03:00
Alexander Udalov
7981e5aa3a
Increase metadata version to 1.1, hardcode incompatibility with 1.0
...
Add a temporary option to suppress incompatibility errors when compiling Kotlin
against current IDEA libraries until they are migrated
2016-01-23 10:00:19 +03:00
Stanislav Erokhin
30bb8d4828
Minor. Optimized enhanceSignature method
2016-01-22 22:09:33 +03:00
Stanislav Erokhin
f710ba88f8
Minor. Removed TypeParameterDescriptor#getLowerBounds
2016-01-22 22:09:33 +03:00
Denis Zharkov
d87b13931d
Create special type for missing dependencies when resolving annotations
...
#KT-10748 Fixed
2016-01-22 19:17:22 +03:00
Ilya Gorbunov
e500e4bdf4
Obtain purely implemented interface class descriptor by its fq-name.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
9c0f0cad70
Packages: move collections to kotlin.collections.
2016-01-22 05:54:38 +03:00
Ilya Gorbunov
9fbbc9db98
Packages: move Ranges, Progression, ProgressionIterators to kotlin.ranges and PrimitiveIterators to kotlin.collections.
2016-01-22 05:54:38 +03:00
Alexander Udalov
e2f49536f5
Move OldPackageFacadeClassUtils to module light-classes
2016-01-19 18:54:08 +03:00
Alexander Udalov
c78bf6c807
Set bytecode version to 1.0.0
...
It was 1.0.2 only because it was introduced as a clone of the metadata version,
which is 1.0.2 at the moment
2016-01-19 18:43:07 +03:00
Alexander Udalov
27dbfc7aef
Rethrow InvalidProtocolBufferException with class file location info
2016-01-19 18:39:59 +03:00
Alexander Udalov
4d93d18af7
J2K DeserializedDescriptorResolver: prettify
2016-01-19 18:39:59 +03:00
Alexander Udalov
3efa51af40
J2K DeserializedDescriptorResolver: convert
2016-01-19 18:39:59 +03:00
Alexander Udalov
432d458c02
J2K DeserializedDescriptorResolver: rename .java -> .kt
2016-01-19 18:39:59 +03:00
Alexander Udalov
b216ed99b4
Simplify UTF-8 decoding, just trivially convert bytes to 16-bit Unicode
...
ASM will do the rest (see ByteVector#encodeUTF8)
2016-01-19 18:39:59 +03:00
Alexander Udalov
9620893fa4
Drop synthetic class kind Function, drop Metadata#xi
2016-01-19 18:39:59 +03:00
Alexander Udalov
aef6d49b48
Drop isLocalClass, do not write KotlinLocalClass
2016-01-19 18:39:59 +03:00
Alexander Udalov
625c46d568
Delete obsolete and unused class_annotation JVM proto extension
2016-01-19 18:39:59 +03:00
Alexander Udalov
6dbd29e6a4
Support decoding of both old and new encoded metadata
2016-01-19 18:39:59 +03:00
Alexander Udalov
5585c7da7f
Minor, simplify utfEncoding, add option to force using 8to7 encoding
2016-01-19 18:39:59 +03:00
Andrey Breslav
fe15984a59
Direct encoding into UTF-8 bytes, without the 8-to-7-bit conversion
2016-01-19 18:39:59 +03:00
Alexander Udalov
a4daa08e5c
Write module name as proto extension instead of another annotation argument
2016-01-19 18:39:59 +03:00
Alexander Udalov
d4c4515944
Refactor BinaryVersion and subclasses, get rid of static factories
2016-01-19 18:39:59 +03:00
Alexander Udalov
e37bd4eba6
Do not write and read KotlinInterfaceDefaultImpls
...
This was only used in InlineTestUtil.kt and had no effect in the condition
2016-01-19 18:39:59 +03:00
Alexander Udalov
7906ac63b5
Read Metadata annotation, support option to ignore old annotations
2016-01-19 18:39:59 +03:00
Alexander Udalov
59dab0a558
Combine all metadata annotations into one kotlin/Metadata
2016-01-19 18:39:59 +03:00
Alexander Udalov
661af854fa
Drop KotlinClassHeader#filePartClassNames, use 'data' instead
2016-01-19 18:39:59 +03:00
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