Dmitry Petrov
7e51fb8521
Check for exposed local classes (or objects) in type signatures
2015-10-12 15:24:54 +03:00
Dmitry Petrov
7e9e427d4c
Java 8 rules for method overrides:
...
- report errors on implementing methods of Any in interfaces
- update testData
~~~
Java 8 override restrictions: interface can't implement a method of 'Any'
- update compiler sources
2015-10-12 14:12:31 +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
Mikhail Glukhikh
64543e3f52
Implicit Nothing return type is now deprecated
2015-10-12 13:30:16 +03:00
Mikhail Glukhikh
65f0f312ff
Private setter is now forbidden for non-private late init variables
2015-10-12 13:30:13 +03:00
Dmitry Jemerov
2cab34bb3f
drop hexadecimal double literals
2015-10-12 11:32:34 +02:00
Dmitry Jemerov
ead19076d7
stop calling propertyDelegated() method
2015-10-12 11:16:12 +02:00
Dmitry Jemerov
02a242f15a
parser tweaks to compensate for removal of static type assertions
2015-10-12 11:11:30 +02:00
Dmitry Jemerov
1523d5bcbf
removing static type assertions work in progress
2015-10-12 11:11:23 +02:00
Denis Zharkov
a76a8fcc3f
Adjust various testData to remove/charAt transformation
2015-10-11 19:59:31 +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
742a538aed
Support loading builtin methods from Java with different names
2015-10-11 19:57:22 +03:00
Alexander Udalov
d4320b43fa
Delete useless class, simplify reading class visitor
2015-10-11 17:10:38 +03:00
Alexander Udalov
0218e0351b
Deprecate KPackage, to be removed later
2015-10-11 17:10:37 +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
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
3506a9615e
Don't write default values of flags, provide sensible defaults
2015-10-11 17:10:28 +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
Denis Zharkov
ad68378836
Support loading methods from Java as common properties overrides
2015-10-10 12:29:14 +03:00
Yan Zhulanow
ed5c059cea
Rename unary plus() and minus() to unaryPlus() and unaryMinus()
2015-10-09 22:49:17 +03:00
Yan Zhulanow
1f2b4e20fe
Replace get() and set() to getValue() and setValue() (property delegates)
2015-10-09 22:49:16 +03:00
Mikhail Glukhikh
2fee9d362c
Local interfaces are forbidden now
2015-10-09 21:06:33 +03:00
Mikhail Glukhikh
d1ab5168ec
Error messages about "var with open / custom setter initialization" changed accordingly with the new backing field syntax
2015-10-09 21:06:29 +03:00
Mikhail Glukhikh
6914d09297
Old backing field with dollar is now forbidden
2015-10-09 21:06:26 +03:00
Michael Nedzelsky
b92a06929e
fix KT-9484 Don't allow named arguments for inherited functions with parameter name conflicts
...
#KT9484 Fixed
2015-10-09 16:35:44 +03:00
Michael Bogdanov
8198ac77cb
Generate private constructor for object
...
#KT-9510 Fixed
2015-10-09 16:25:20 +03:00
Pavel V. Talanov
d630c25f7d
Add test for light class generated from object
2015-10-09 16:25:18 +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
Zalim Bashorov
e9b138557b
Report error when try to access to static field which come from many sources
2015-10-09 15:00:59 +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
Denis Zharkov
1f52dfccdb
Setup specific loading contains/containsAll from java
...
If they override Kotlin collection members
contains(Object) -> contains(E)
containsAll(Collection<?>) -> containsAll(Collection<E>)
2015-10-09 14:40:33 +03:00
Denis Zharkov
521e958f6d
Serialize type annotations in builtins
2015-10-09 14:40:33 +03:00
Denis Zharkov
e800be18c6
Introduce UnsafeVariance annotation
2015-10-09 14:40:33 +03:00
Dmitry Jemerov
7e2c2ef678
restore compilation after rebase of dropping external annotations; fix affected tests
2015-10-09 11:52:02 +02:00
Alexander Udalov
c41aefe2cb
Drop JVMConfigurationKeys.ANNOTATIONS_PATH_KEY and external annotations in CLI
...
CoreExternalAnnotationsManager is moved to the only usage left, which is in the
test
2015-10-09 11:52:00 +02:00
Alexander Udalov
b0a4e812e5
Drop ConfigurationKind.JDK_AND_ANNOTATIONS, JetTestUtils.getJdkAnnotationsJar()
2015-10-09 11:51:59 +02:00
Alexander Udalov
448b3f6195
Rename testData/codegen/boxWithStdlib/{jdkAnnotations -> jdk}
2015-10-09 11:51:58 +02:00
Alexander Udalov
13c54a2678
Drop external annotations support in build tools
...
External annotations will only be considered in the IDE for additional
inspections based on more precise types in Java libraries
2015-10-09 11:51:58 +02:00
Svetlana Isakova
f2efd30a5d
Added 'NoInfer' and 'Exact' annotations
2015-10-09 11:05:52 +03:00
Zalim Bashorov
c8f54b3ccb
Fix the accessing to static field from Parent through Child
2015-10-08 19:33:29 +03:00
Zalim Bashorov
ae2831338b
Load Java static members from parents
2015-10-08 19:33:29 +03:00
Yan Zhulanow
fd3c28c950
Forbid Foo<T>.Bar
2015-10-08 18:31:07 +03:00
Yan Zhulanow
2c848b8bb0
Add JvmSynthetic annotation
2015-10-08 18:31:06 +03:00
Dmitry Jemerov
4c4030dfc1
disallow putting type parameter constraints both in type parameter list and in 'where' clause
2015-10-08 17:09:57 +02:00