Commit Graph

115 Commits

Author SHA1 Message Date
Andrey Breslav ab93b530f1 Don't use annotations after nullability was forced upon a platform type
#KT-6762 Fixed
 #KT-6763 Fixed
2015-02-17 18:44:46 +03:00
Alexander Udalov e705ff2517 Write KotlinSyntheticClass annotation on when-by-enum mapping classes 2015-02-16 21:46:22 +03:00
Alexander Udalov 6ce8d6bd2e Serialize descriptors for local/anonymous classes on JVM
Reflection needs this information to work for local classes and anonymous
objects
2015-02-16 21:46:21 +03:00
Alexander Udalov 0d05fca838 Support serialization/deserialization of local classes
Most of these changes are aimed to support and correctly transform ClassId for
local classes, no actual bytes are written or read at the moment (see next
commits). See the comment on ClassId for clarification.

A hack in DescriptorSerializer which erased anonymous types to Any (which had
been breaking the consistency between descriptors resolved from sources and
from serialized information) is now gone
2015-02-16 20:19:54 +03:00
Alexander Udalov 5d8ae3ed6a Minor, refactor some constants in JvmAnnotationNames
Declare KotlinClass similarly to KotlinSyntheticClass, this will be used later
2015-02-16 20:19:52 +03:00
Alexander Udalov fdfe3fd73b Minor, serialize/deserialize local visibility
Also support non-subsequent enum values in Flags
2015-02-16 20:19:51 +03:00
Alexander Udalov e812c4e67f Introduce KotlinSyntheticClass.Kind.LOCAL_TRAIT_IMPL 2015-02-16 20:19:50 +03:00
Alexander Udalov ce26ce0458 Drop "extra visibility" from binary format
Descriptors of Kotlin symbols should always have a visibility known to Kotlin
2015-02-16 20:19:49 +03:00
Alexander Udalov 45fec9257a Minor, move replaceHashWithStar to JetTestUtils 2015-02-16 20:19:48 +03:00
Alexander Udalov 37da154ea2 Minor, move builtins serializer test data 2015-02-16 20:19:47 +03:00
Andrey Breslav 54483dbb95 KT-6118 Redundant type cast can be not redundant?
#KT-6118 Fixed
2015-02-16 18:50:10 +03:00
Andrey Breslav c61a29d4f5 KT-6774 Cannot find equals() when comparing with null
#KT-6774 Fixed
2015-02-16 18:50:09 +03:00
Pavel V. Talanov 96e54b4872 Test accessing class object from java 2015-02-16 15:38:45 +03:00
Pavel V. Talanov 2d59791cf2 Improve LazyClassDescriptor#getDefaultObjectDescriptor()
To cover the case when default object's name is not unique (redeclaration)
(Calling getClassifier is wrong for this case)
2015-02-16 15:38:44 +03:00
Pavel V. Talanov b6b83a4683 Minor: Add validation for ClassDescriptor#getDefaultObjectDescriptor() new contract 2015-02-16 15:38:44 +03:00
Pavel V. Talanov f482768acf Introduce ClassDescriptor#getDefaultObjectDescriptor()
ClassDescriptor#getClassObjectDescriptor (with old semantics) is now a utility
Process usages and replace with calls to a new method where appropriate
2015-02-16 15:38:42 +03:00
Pavel V. Talanov a1f4c06a49 Update test data that mentioned old JvmAbi constants 2015-02-16 15:38:34 +03:00
Pavel V. Talanov d9d3f68a39 Drop JetClassObject element and its usages
as class objects are now represented by JetObjectDeclaration element
2015-02-16 15:38:31 +03:00
Pavel V. Talanov 42d2b97c09 Remove all class object related constants and utils from JvmAbi 2015-02-16 15:38:30 +03:00
Pavel V. Talanov 894c3bceac Test: add jvm backend test for named class object 2015-02-16 15:38:29 +03:00
Pavel V. Talanov 72f94963ab Tests: add resolve test for named class object 2015-02-16 15:38:28 +03:00
Pavel V. Talanov 2e837c6586 Parser: allow names to be specified for class objects 2015-02-16 15:38:28 +03:00
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
Nikolay Krasko 52f1c4048a More test for conflicting declarations with delegation 2015-02-13 20:28:50 +03:00
Alexander Udalov 29c501e813 Remove useless InjectorForLazyResolveWithJavaUtil, move methods to LazyResolveTestUtil 2015-02-11 18:37:13 +03:00
Alexander Udalov 021315f049 Minor, make ModuleDescriptor public in injectors
It's much more convenient to call injector.getModule() than
injector.getResolveSession().getModuleDescriptor()
2015-02-11 18:37:12 +03:00
Alexander Udalov 5dcf9df6ab Drop InjectorForJavaDescriptorResolver and dependencies
Use InjectorForLazyResolveWithJava instead, it does essentially the same
2015-02-11 18:37:11 +03:00
Alexander Udalov 9b28e19551 Use CodegenContext to determine outer class & enclosing method 2015-02-11 18:10:49 +03:00
Alexander Udalov e7a744b315 Make JetTypeMapper aware of SAM constructor arguments
This obsoletes 'replaceName' workaround that was present in ClosureCodegen but
missing in other crucial call sites of mapSignature, e.g. generation of
EnclosingMethod info

 #KT-6691 Fixed
2015-02-11 18:10:41 +03:00
Alexander Udalov 6ee4c70f2f Minor, extract OuterClassInfo 2015-02-11 18:10:37 +03:00
Alexander Udalov a280599969 Fix wrong checkcast for === on objects
#KT-6747 Fixed
2015-02-11 18:10:35 +03:00
Alexander Udalov cd6d04b3ba Fix incompleteHierarchyInJava test on Windows
Normalize path delimiters to '/' via CliBaseTest
2015-02-10 16:31:58 +03:00
Andrey Breslav fcb6055913 SenselessComparisonChecker used for @NotNull values from Java 2015-02-10 06:55:49 +01:00
Andrey Breslav f36d6ce5b2 Reporting USELESS_ELVIS and UNNECESSARY_NOT_NULL_ASSERTION on Java's @NotNull values 2015-02-10 06:55:48 +01:00
Andrey Breslav 30f5c1b953 Reporting unnecessary safe calls on Java's @NotNull values 2015-02-10 06:55:48 +01: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
Andrey Breslav 0e972acf8c == turned into a safe-call 2015-02-10 06:55:46 +01:00
Alexander Udalov 560b2346a6 Fix ScriptTest, use full JDK instead of mock
Mock JDK has an incomplete hierarchy (OutputStream -> Flushable) and this is
relevant in ScriptTest because it collects all compiler output messages
2015-02-10 00:34:18 +03: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
Dmitry Jemerov 084470e840 fix NPE in KDocLinkParser 2015-02-09 18:21:50 +01:00
Dmitry Jemerov 70cf3e9c60 KDoc link parsing rewrite.
Support qualified names immediately after tag (@see or @param). Detect whether a tag is followed by a reference immediately while lexing, remove TEXT_OR_LINK token type. Remove duplicate nested KDocLink nodes from the PSI structure.
2015-02-06 16:33:55 +01:00
Dmitry Jemerov 56d85c2033 don't parse links which aren't Kotlin identifiers and have an explicitly specified destination 2015-02-05 16:27:37 +01:00
Dmitry Jemerov 3253754395 code review 2015-02-04 17:26:48 +01:00
Dmitry Jemerov 40f459306a parse qualified names in kdoc 2015-02-04 17:26:46 +01:00
Dmitry Jemerov 223882d292 correctly parse tag in the beginning of doc comment 2015-02-04 17:26:46 +01:00
Alexander Udalov cafc1ea24d Fix resolution of inherited Kotlin properties in Java classes
#KT-6720 Fixed
2015-02-04 14:57:47 +03:00
Alexander Udalov 5c2d0c6173 Generate not-null assertions on extension receiver parameters 2015-02-03 21:40:39 +03:00
Alexander Udalov 39c9216edc Fix shameful assertion message error introduced after extracting method 2015-02-03 21:20:25 +03:00
Michael Nedzelsky df8fed096c add support for compile time constant serialization 2015-02-03 14:41:24 +03:00