Commit Graph

550 Commits

Author SHA1 Message Date
Pavel V. Talanov 0343fd8fc7 Rework class objects
Class objects have name "Default" by default
Do not produce synthetic class objects
Class objects have new semantics:
    class "A" has class object "B" if literal "A" can be used as a value of type "B"
Class objects act like ordinary nested objects
    i.e. are accessible from class scope via getClassifier()
Jvm backend: class object fields and class have the name of class object ("Default")
	as opposed to special "OBJECT$" and "object"
Serialization: only the name of class object is needed to serialize data
2015-02-16 15:38:27 +03:00
Alexander Udalov 9f74d64d03 Avoid using FQNAME_TO_CLASS_DESCRIPTOR slice where module exists 2015-02-11 18:37:13 +03:00
Andrey Breslav 1d4109aec1 Retaining annotations on Java array types 2015-02-10 06:55:48 +01:00
Andrey Breslav 5db6bb04e3 Basic Java nullability warnings implemented
#KT-6723 In Progress
2015-02-10 06:55:47 +01:00
Alexander Udalov 4128655893 Report incomplete hierarchy error
This is the case when you reference a Java class in Kotlin whose superclass is
not resolved. Previously this fact was swallowed by LazyJavaClassDescriptor
leading to mysterious compilation errors

 #KT-5129 Fixed
2015-02-09 21:14:02 +03:00
Alexander Udalov cafc1ea24d Fix resolution of inherited Kotlin properties in Java classes
#KT-6720 Fixed
2015-02-04 14:57:47 +03:00
Michael Nedzelsky df8fed096c add support for compile time constant serialization 2015-02-03 14:41:24 +03:00
Andrey Breslav da639039bd KT-6698 Bad class file when using a star-projection on a Java's recursive generic parameter
#KT-6698 Fixed
2015-02-02 19:52:00 +03:00
Valentin Kipyatkov 974982463c Visible classes take priority when resolving imports with * 2015-01-21 20:10:18 +03:00
Valentin Kipyatkov b9d47ffe7a Changed priority for default imports + default imports include all built-ins explicitly for java module
#KT-4374 Fixed
2015-01-21 20:10:18 +03:00
Alexey Tsvetkov 89f8442705 Fixed weird compilation issue by moving function to other package 2015-01-14 21:49:52 +03:00
Alexander Udalov 64c6055030 Rename jet -> kotlin in frontend, descriptors: resolve
org.jetbrains.jet.lang.resolve -> org.jetbrains.kotlin.resolve
2015-01-11 05:09:01 +03:00
Alexander Udalov 8affc31303 Rename jet -> kotlin in descriptor.loader.java, frontend.java
Split package 'lang/resolve/java' into two semantically different packages:
'resolve/jvm' and 'load/java'. Also rename 'lang/resolve/kotlin' to
'load/kotlin'
2015-01-11 05:08:57 +03:00
Alexander Udalov 524fdc2527 Rename jet -> kotlin in descriptors, types, names
org.jetbrains.jet.lang.descriptors -> org.jetbrains.kotlin.descriptors
org.jetbrains.jet.lang.types -> org.jetbrains.kotlin.types
org.jetbrains.jet.lang.resolve.name -> org.jetbrains.kotlin.name
2015-01-10 15:52:20 +03:00
Alexander Udalov 2ac4c65720 Move PlatformToKotlinClassMap to org.jetbrains.kotlin.platform
Also JavaToKotlinClassMap
2015-01-10 15:52:17 +03:00
Alexander Udalov e88f89d1c6 Rename jet -> kotlin in descriptors: built-ins
org.jetbrains.jet.lang.types.lang -> org.jetbrains.kotlin.builtins
2015-01-10 15:52:16 +03:00
Alexander Udalov 2c414d880c Rename jet -> kotlin in descriptors: renderer
org.jetbrains.jet.renderer -> org.jetbrains.kotlin.renderer
2015-01-10 15:51:59 +03:00
Alexander Udalov 05eaf81ba6 Rename jet -> kotlin and regroup files in serialization
org.jetbrains.jet.descriptors.serialization ->
org.jetbrains.kotlin.serialization

Deserialization goes to subpackage deserialization, built-ins-related stuff
goes to subpackage builtins
2015-01-09 16:37:22 +03:00
Alexander Udalov 00878cc31a Rename java -> jvm, jet -> kotlin in module serialization.java
org.jetbrains.jet.descriptors.serialization ->
org.jetbrains.kotlin.serialization.jvm
2015-01-09 14:27:13 +03:00
Alexander Udalov f447a860b1 Rename package jet -> kotlin in util.runtime (StorageManager)
org.jetbrains.jet.storage -> org.jetbrains.kotlin.storage
2015-01-08 23:32:08 +03:00
Alexander Udalov f37e2f173d Rename package jet -> kotlin in util, util-runtime
org.jetbrains.jet.config -> org.jetbrains.kotlin.config
org.jetbrains.jet.utils -> org.jetbrains.kotlin.utils

Also move coreLib.kt to package 'org.jetbrains.kotlin.utils'
2015-01-08 23:32:08 +03:00
Svetlana Isakova d2becce1ac Make vararg argument of java annotation have 'out' type 2014-12-27 00:55:23 +03:00
Pavel V. Talanov d6881b78d2 Add hack to avoid stub ast mismatch when decompiling libraries built with M9 compiler 2014-12-24 16:49:59 +03:00
Michael Bogdanov 9e864f3c36 Fix java visibility publicity
#KT-6478 Fixed
2014-12-23 16:28:44 +03:00
Valentin Kipyatkov cb5c12cda3 Completion of object's in type position - they can be used there 2014-12-18 15:47:59 +03:00
Ilya Ryzhenkov be717f48f8 Stop using deprecated APIs 2014-12-16 17:33:24 +03:00
Svetlana Isakova 5b4f10e698 Made vararg parameters have Array<out T> type
instead of simply Array<T>
  #KT-1638 Fixed
  #KT-2163 Fixed
  #KT-3213 Fixed
  #KT-4172 Fixed
  #KT-5534 Fixed
2014-12-12 23:08:28 +03:00
Svetlana Isakova d893e8283e Small refactoring 2014-12-12 23:08:28 +03:00
Valentin Kipyatkov b8d1f115bf Renamed JetType.isNullable() to isMarkedNullable() 2014-12-03 21:36:10 +03:00
Alexander Udalov 63bfa004fd Introduce binary representation for annotations
Will be used where annotations can't be stored elsewhere: for example,
built-ins, JS, type annotations on JDK<8
2014-12-03 16:10:19 +03:00
Alexander Udalov 66774c0fd1 Remove utility method from AnnotationDescriptor interface 2014-12-03 15:58:12 +03:00
Andrey Breslav 99ac9e1c2f Singleton made thread-safe in JavaToKotlinClassMap 2014-12-03 15:39:16 +03:00
Andrey Breslav c21dd366e0 Checks for primitive types and arrays made static in KotlinBuiltIns 2014-12-03 15:39:11 +03:00
Andrey Breslav db635c0e44 is<TYPE>() made static in KotlinBuiltIns 2014-12-03 15:39:10 +03:00
Stanislav Erokhin b55114055e Change usage "v == Visibilities.PRIVATE" to Visibilities.isPrivate(v) 2014-12-02 14:30:17 +03:00
Stanislav Erokhin b3f3b3946e Add receiver to Visibility#isVisible 2014-12-02 14:30:16 +03:00
Pavel V. Talanov 0a4f93ddb0 Move check for special annotation to an abstract class 2014-11-27 21:17:21 +03:00
Pavel V. Talanov 0d6555cc63 Prettify code in BinaryClassAnnotationAndConstantLoaderImpl 2014-11-27 21:17:20 +03:00
Pavel V. Talanov bd575c39dd Fix calling toString() on ProtoContainer 2014-11-27 21:17:20 +03:00
Pavel V. Talanov f0a9c4f683 Extract non-descriptor specific abstract ancestor for BinaryClassAnnotationAndConstantLoader 2014-11-27 21:17:19 +03:00
Pavel V. Talanov 39e1dfbcc0 Merge AnnotationLoader and ConstantLoader into single interface
Merge all implementation classes into single BinaryClassAnnotationAndConstantLoader
2014-11-27 21:17:18 +03:00
Pavel V. Talanov 1652157ec7 Prettify AnnotationDescriptorLoader, ConstantDescriptorLoader and DescriptorLoadersStorage after conversion 2014-11-27 21:17:18 +03:00
Pavel V. Talanov 09ff1128ea Convert AnnotationDescriptorLoader, ConstantDescriptorLoader and DescriptorLoadersStorage 2014-11-27 21:17:17 +03:00
Pavel V. Talanov 81ddd16df2 Rename AnnotationDescriptorLoader, ConstantDescriptorLoader and DescriptorLoadersStorage before conversion 2014-11-27 21:17:17 +03:00
Pavel V. Talanov e4d3a65124 Make AnnotationLoader and ConstantLoader accept descriptor-independent data
Rewrite BaseDescriptorLoader to operate on data derived from proto
Intdoduce ProtoContainer to replace containing descriptor as input data
2014-11-27 21:17:16 +03:00
Pavel V. Talanov c73ac97ecf Minor: simplify code 2014-11-27 21:17:15 +03:00
Pavel V. Talanov d2fc7c7fd3 Inline BaseDescriptorLoader#getPackagePartClassName utilities 2014-11-27 21:17:15 +03:00
Pavel V. Talanov 38725687fc Prettify code in BaseDescriptorLoader after conversion 2014-11-27 21:17:14 +03:00
Pavel V. Talanov bd540d5f80 Convert BaseDescriptorLoader to kotlin 2014-11-27 21:17:14 +03:00
Pavel V. Talanov 5aebc2fecd Rename BaseDescriptorLoader before conversion 2014-11-27 21:17:13 +03:00