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