Commit Graph

2844 Commits

Author SHA1 Message Date
Michael Bogdanov d78b59eb73 Package private visibility for private top-level members 2015-10-14 16:03:54 +03:00
Michael Bogdanov 0209cd080e Deprecated flag for static non-JvmField and non-const properties 2015-10-14 13:13:49 +03:00
Alexander Udalov 78829b9e8f Minor, drop some obsolete usages of TRAIT in compiler 2015-10-13 20:29:39 +03:00
Alexander Udalov baaa3ef50a Remove KotlinSignature annotations from project code 2015-10-13 20:29:16 +03:00
Michael Bogdanov 27a1a17c09 Deprecate non-const properties copies in interface 2015-10-13 14:15:47 +03:00
Alexander Udalov 046722100c Minor, drop unused method 2015-10-13 11:59:46 +03:00
Michael Bogdanov f4b7913dd3 sanitizeAsJavaIdentifier function moved to JvmAbi 2015-10-13 11:14:32 +03:00
Michael Bogdanov f7164c5bfd Don't rename class property with JvmField annotation, report clashing 2015-10-13 11:14:31 +03:00
Michael Bogdanov 22142ee44d Initial support of JvmField annotation 2015-10-13 10:50:09 +03:00
Pavel V. Talanov 6cf9bfdb70 publicField -> JvmField
Effectively drop publicField and introduce JvmField (which has the same effect for now)
Implement frontend checks for @JvmField
Replace publicField -> JvmField in test data
2015-10-13 10:50:08 +03:00
Michael Bogdanov ee6dbac381 Remove synthetic flag from internal members 2015-10-13 10:48:37 +03:00
Andrey Breslav 1c00b933a5 @Deprecated(..., level = HIDDEN) supported
isAnnotatedAsHidden() moved to front-end
2015-10-13 01:44:46 +03:00
Andrey Breslav a2e5e60c68 TRAIT -> INTERFACE in diagnostics 2015-10-12 14:36:38 +03:00
Dmitry Petrov 5d9ee7efee Java 8 rules for method overrides:
- base class method wins against a (default) interface method,
so an abstract base class method should always be implemented
in a derived class;

- interface methods clash regardless of abstract/default
with possibly undefined behavior at run-time,
so a class or interface should always define its own method
for methods inherited from multiple interfaces and not from base class;

- meaningful diagnostics for class inheriting conflicting JVM signatures.
Since no override will happen under Java 8 rules,
ACCIDENTAL_OVERRIDE is misleading for this case;

- update testData.
2015-10-12 14:12:31 +03:00
Dmitry Jemerov ead19076d7 stop calling propertyDelegated() method 2015-10-12 11:16:12 +02:00
Dmitry Jemerov 1523d5bcbf removing static type assertions work in progress 2015-10-12 11:11:23 +02:00
Denis Zharkov 6d864e0854 Adjust collection stubs generating to 'remove' transformation
See substitutedList* tests in Backend
2015-10-11 19:59:30 +03:00
Denis Zharkov 89ded4ab1d Implement hack to support both remove() and removeAt() in MutableList<Int>
Also add couple of tests about CharSequence.get
2015-10-11 19:57:22 +03:00
Denis Zharkov a98d1e1e55 Minor. Convert some properties to functions 2015-10-11 19:57:08 +03:00
Alexander Udalov 9d626ef1d9 Rename KotlinCallable annotation to KotlinFunction 2015-10-11 17:10:40 +03:00
Alexander Udalov d4320b43fa Delete useless class, simplify reading class visitor 2015-10-11 17:10:38 +03:00
Alexander Udalov 9e4823ef82 Write module name to metadata, fix reflection for file facades
Module name will be used for proper introspection of internal members
2015-10-11 17:10:37 +03:00
Alexander Udalov 0218e0351b Deprecate KPackage, to be removed later 2015-10-11 17:10:37 +03:00
Alexander Udalov 37c36f806a Rename foreignKotlinClass -> getOrCreateKotlinClass
Previously this cache contained only Java (hence 'foreign') classes, that is
not the case anymore
2015-10-11 17:10:35 +03:00
Alexander Udalov a4732b442d Don't create KClass and KPackage instances in <clinit>
This proved to be a fragile technique, which probably doesn't even improve
performance in most cases but has lots of unexpected problems: unconditional
initialization of reflection classes, increasing the size of the bytecode, bugs
with <clinit> in annotations on JVM 6, inability to support conversion of a
class from Kotlin to Java without recompiling clients which use it
reflectively, etc.
2015-10-11 17:10:35 +03:00
Alexander Udalov cf54a76e3b Optimize JvmStringTable, don't store operation = NONE which is default 2015-10-11 17:10:31 +03:00
Alexander Udalov 934ffed944 Don't write field signatures when not necessary 2015-10-11 17:10:30 +03:00
Alexander Udalov 864926ee2e Don't always write JVM method signatures to metadata
When the trivial type mapping (implemented in JvmProtoBufUtil) from
ProtoBuf.Type instances works fine, don't write the signature since it can be
loaded by exactly the same trivial type mapping
2015-10-11 17:10:30 +03:00
Alexander Udalov 168f1000e4 Remove confusing outdated code about copying JVM signatures
This was necessary with old package facades, but not anymore because metadata
is written separately to file classes and codegen now never tries to serialize
deserialized descriptors
2015-10-11 17:10:29 +03:00
Alexander Udalov e4efa27b76 Drop Callable and primary/secondary constructor proto messages 2015-10-11 17:10:26 +03:00
Alexander Udalov 9bf0502a31 Load new proto messages for functions and properties 2015-10-11 17:10:24 +03:00
Michael Bogdanov ae15443413 Generate linenumberts in objects clinit 2015-10-09 16:25:21 +03:00
Michael Bogdanov afa281357a Changed visibility for trait static fields 2015-10-09 16:25:20 +03:00
Michael Bogdanov 8198ac77cb Generate private constructor for object
#KT-9510 Fixed
2015-10-09 16:25:20 +03:00
Michael Bogdanov 7fe71d21f3 Initialize class companion object fields on accessing its java class 2015-10-09 16:25:16 +03:00
Michael Bogdanov 60d1736b97 Instance field generation in objects 2015-10-09 16:25:16 +03:00
Michael Bogdanov 53ced57c42 Annotations.EMPTY replaced with Annotations.Companion.getEMPTY() in java classes 2015-10-09 16:25:15 +03:00
Michael Bogdanov 12afbffb09 Copy to interface just companion object public const properties 2015-10-09 16:25:15 +03:00
Michael Bogdanov a9aa2bc147 Interface companion object backing fields become static 2015-10-09 16:25:14 +03:00
Denis Zharkov 35783f129b Generate INSTANCEOF barrier in bridges for Collection.contains 2015-10-09 14:40:33 +03:00
Denis Zharkov 80da320c2c Customize JVM signature for Collection's members
- Do not write signature for `contains`
- Write signature for `containsAll` as it's declared like `containsAll(Collection<?>)`
2015-10-09 14:40:33 +03:00
Zalim Bashorov c8f54b3ccb Fix the accessing to static field from Parent through Child 2015-10-08 19:33:29 +03:00
Yan Zhulanow 937d1913b8 Automatically put 'operator' modifier on appropriate Java methods 2015-10-08 18:31:07 +03:00
Yan Zhulanow 2c848b8bb0 Add JvmSynthetic annotation 2015-10-08 18:31:06 +03:00
Ilya Gorbunov 90e5ee8a7e Replace KotlinPackage legacy facade with corresponding package parts. 2015-10-07 22:36:29 +03:00
Ilya Gorbunov 3106458cc4 Replace assert with lazy assert, times with repeat. 2015-10-07 22:36:23 +03:00
Ilya Gorbunov b50c106648 Replace reverse with reversed or asReversed. 2015-10-07 22:36:18 +03:00
Ilya Gorbunov 37a0347669 Replace sort with sorted. 2015-10-07 22:36:16 +03:00
Michael Bogdanov fa32aa2950 SYNTHETIC flag for internal members 2015-10-07 18:10:56 +03:00
Michael Bogdanov 882f6113dc Initial internal member mangling 2015-10-07 18:10:54 +03:00