Valentin Kipyatkov
8e6b0a26bb
Synthetic extensions to take all annotations from original declarations
...
#KT-9387 Fixed
2015-10-20 10:12:34 +03:00
Yan Zhulanow
e14c9645dc
Error on 'if' without an 'else' branch when used as an expression
2015-10-19 03:56:15 +03:00
Denis Zharkov
cc94acdabc
Do not load common for special properties from Java
...
I.e. do not treat getName in Java enum as override of Enum.name
2015-10-17 17:46:17 +03:00
Stanislav Erokhin
7d7d37719b
Forbidden old invokeExtension convention.
2015-10-17 14:45:53 +03:00
Svetlana Isakova
082469aee4
Resolve annotations on type parameters of functions and properties
2015-10-16 21:58:45 +03:00
Svetlana Isakova
6c4771147a
Added more tests on annotations for nullable types
2015-10-16 21:58:43 +03:00
Mikhail Glukhikh
4b35e3b135
Preliminary declaration visitor for estimating local variable's predictability for smart casts
...
Predictability estimation algorithm is completely new, but backward compatibility should present.
A large set of tests. Some updated tests.
Smart casts allowed for captured variables if they are not modified in closure #KT-9051 Fixed
Also #KT-8643 Fixed
Also #KT-7976 Fixed
Correct handling of lambda arguments in functions #KT-9143 Fixed
2015-10-16 20:47:47 +03:00
Stanislav Erokhin
d5dbc9638d
Added static methods, nested classes and companion object from superclasses.
2015-10-16 20:42:34 +03:00
Stanislav Erokhin
ace99f6c3f
Don't use ForceResolveUtil.forceResolveAllContents in TypeResolver in order to avoid problems with cyclic hierarchy.
2015-10-16 20:42:33 +03:00
Andrey Breslav
b050324869
Mark string prefixes and suffixes as unsupported
2015-10-16 18:03:53 +03:00
Zalim Bashorov
79d38a6c8f
Report the error when a declaration in Kotlin accidentally overrides a static member from Java
2015-10-16 16:14:34 +03:00
Zalim Bashorov
72a686f9e0
Add tests for accessing to Java/Kotlin inner/nested classes
2015-10-16 16:09:35 +03:00
Michael Nedzelsky
8e9f1ac31a
Extension function type is not allowed as supertype
2015-10-16 14:23:47 +03:00
Alexander Udalov
bf4a681589
Deduce receiver type of callable reference from LHS, not from descriptor
2015-10-15 18:25:42 +03:00
Alexander Udalov
2cf437c0e2
Fix type of callable reference to fake override
2015-10-15 18:25:41 +03:00
Michael Nedzelsky
890ae3e914
Make single-file classes tolerant to having many main()'s
2015-10-15 15:46:26 +03:00
Alexander Udalov
ced1edcf98
Prohibit callable references to object members
...
To be able to make them more useful in the future, i.e. bound to the object
instance
2015-10-14 20:45:56 +03:00
Denis Zharkov
e062e32f95
Do not load special builtin overrides from Java as synthesized
...
It has been done just to avoid clashes with real declarations that look
like our builtins: e.g. 'String removeAt(int index) {}' and 'String remove(int index) {}'in Java.
But synthesized members are even weaker than extensions.
Solution is just to ignore the latter declaration and treat first as effective override
of out builltin.
2015-10-14 20:39:51 +03:00
Denis Zharkov
6fa8083a70
Transform builtin Map declaration and adjust stdlib
2015-10-14 20:39:38 +03:00
Alexey Tsvetkov
5449cea6b7
Make Array type parameter T non-reified
2015-10-14 18:36:53 +03:00
Mikhail Glukhikh
c0faf82f77
Initializer is now required for mutable properties with backing fields and open or custom setter #KT-9449 Fixed
...
Setters without body are not taken into account accordingly to KT-9449.
Old INITIALIZATION_USING_BACKING_FIELD_SETTER are both dropped.
2015-10-14 18:00:13 +03:00
Mikhail Glukhikh
9c9ab671b3
Effective visibility: local is now considered private, TYPE_DEPENDS_ON_LOCAL_CLASS diagnostics removed as repeated #KT-9542 Fixed #KT-9526 Fixed
2015-10-14 18:00:10 +03:00
Mikhail Glukhikh
3a902d6002
Effective visibility: fix for internal & protected vs protected comparison #KT-9582 Fixed
2015-10-14 18:00:07 +03:00
Mikhail Glukhikh
c210ca5b4d
Additional correctness check for noinline & crossinline #KT-9567 Fixed
2015-10-14 18:00:02 +03:00
Michael Nedzelsky
d05a7224c7
add check for escaped identifiers
2015-10-14 16:57:06 +03:00
Pavel V. Talanov
be15399313
Report errors for type parameters of properties that are not used in receiver types
2015-10-14 13:40:10 +03:00
Yan Zhulanow
275f3f8954
'operator' checks
2015-10-14 01:29:10 +03:00
Svetlana Isakova
075a8eaf39
Moved 'Exact' and 'NoInfer' annotations to stdlib
2015-10-13 21:42:54 +03:00
Valentin Kipyatkov
d728417f7f
Fixed KT-9496 FQ-class name inserted in type argument on copy/paste
...
#KT-9496 Fixed
2015-10-13 19:13:22 +03:00
Mikhail Glukhikh
4dbd7e7f69
Effective visibility: lower bounds introduced for all protected and for protected and internal #KT-9540 Fixed
2015-10-13 16:26:05 +03:00
Alexey Tsvetkov
0e606a3210
Prohibit named parameters in function types in supertype position
2015-10-13 16:07:55 +03:00
Alexey Tsvetkov
90849a67ae
Prohibit annotations, modifiers and default values for parameters in function type
...
#KT-7619 fixed
2015-10-13 16:07:55 +03:00
Andrey Breslav
95240fc29f
DEPRECATED_ERROR supported
2015-10-13 01:44:46 +03:00
Mikhail Glukhikh
92f031cc46
Warning "value of type parameter is predetermined" is no more generated for sealed bound #KT-9244 Fixed
2015-10-12 18:28:47 +03:00
Mikhail Glukhikh
e121ba549e
Accessor visibilities are now forbidden for abstract properties
2015-10-12 18:12:39 +03:00
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
1523d5bcbf
removing static type assertions work in progress
2015-10-12 11:11:23 +02:00
Denis Zharkov
742a538aed
Support loading builtin methods from Java with different names
2015-10-11 19:57:22 +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
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