Mikhail Zarechenskiy
88595e1a58
Don't require to override abstract methods in expect class
...
#KT-16099 Fixed
2017-10-11 15:27:50 +03:00
Mikhail Zarechenskiy
5695e76a00
Prohibit inheritance by delegation in expect classes
...
#KT-20431 Fixed
2017-10-11 15:27:46 +03:00
Dmitry Savvinov
f5d40a1c98
Fix testdata in varargs tests
...
Testdata have been changed since 1.2. due to KT-20171.
2017-10-11 14:06:54 +03:00
Alexander Udalov
6f2e6db131
Check the RequireKotlin annotation value
...
Similarly to SinceKotlin
2017-10-10 13:21:50 +02:00
Dmitry Petrov
26136cd0fe
Check constness of 'apiVersionIsAtLeast' arguments
2017-10-10 09:04:51 +03:00
Leonid Stashevsky
0348561cd2
Add annotation for default parameter value
2017-10-06 15:45:38 +03:00
e5l
62e87c873c
Add annotation for parameter name in signatures
2017-10-06 15:45:37 +03:00
Mikhail Glukhikh
8a3fed15f8
Report NO_ACTUAL_FOR_EXPECT etc. on relevant declaration
...
So #KT-20398 Fixed
2017-10-06 10:48:34 +03:00
Mikhail Glukhikh
472e6f462f
Report some actual declaration problems on declaration name
...
Related to KT-20398
2017-10-06 10:48:24 +03:00
Stanislav Erokhin
4c456983eb
Fix javac tests (add separate descriptor rendering)
2017-10-05 15:11:45 +03:00
Mikhail Zarechenskiy
f3344ec2b2
Treat expect classes as not having implicit default constructors
...
#KT-15522 Fixed
2017-10-05 00:10:42 +03:00
Dmitry Petrov
3405ae30a1
Inner classes of generic classes can't extend Throwable
...
Do it in the same way as Java: prohibit inner classes (including
anonymous inner classes) capturing type parameters from outer classes
(but not outer methods) extending Throwable.
See KT-17981:
- Deprecated in 1.2
- Error in 1.3
2017-10-04 12:43:50 +03:00
Denis Zharkov
a51078fda6
Turn off optimizations in case of do-while presence
2017-10-02 10:04:16 +03:00
Denis Zharkov
c31b5beb9e
Remove redundant check for a variable being initialized after write
...
It's anyway is obvious for write instruction, while effectively
after optimizations we treat val with syntactic initializer
uninitialized until their immediate initiazer
2017-10-02 10:04:16 +03:00
Denis Zharkov
527daced46
Optimize CFG for cases of simple variables
...
Parameters/vals with an immediate initializer (which we assume is a
rather common situation) do not require any kind of complicated CFA
- Unused vals can be simply determined by linear traversal of
the pseudocode
- Definite assignment is a bit more complicated: a read-instruction of val
can be considered as a safe if it's located *after* the first write in
the pseudocode. It works almost always beside the case with do/while
(see the test changed). This case will be fixed in the further commits
The test for kt897.kt will also be fixed further, all other changes
might be considered as minor as they mostly change diagnostics for
already red code
2017-10-02 10:04:16 +03:00
Alexey Andreev
0269c3309a
JS: fix parsing of wrong delete operation in js function.
...
See KT-15294
2017-09-29 14:32:49 +03:00
Mikhail Zarechenskiy
69e3dd89f6
Split diagnostic factory for the ease of code evolution and tooling
2017-09-26 14:49:42 +03:00
Alexey Andreev
ca014468ee
JS: improve name clash checker to handle complicated cases
...
See KT-18010
2017-09-26 13:56:19 +03:00
Mikhail Zarechenskiy
32531b3afc
Allow to have all parameters with default values in actual annotation
...
#KT-19656 In Progress
2017-09-25 16:19:05 +03:00
Alexander Udalov
2d9f07deec
Minor, add test for obsolete issue on "actual missing" error
...
#KT-20142
2017-09-25 11:58:20 +03:00
Alexander Udalov
2281ac842a
Prohibit super constructor call for 'expect' class
...
#KT-15490 Fixed
2017-09-25 11:58:20 +03:00
Alexander Udalov
8ae7343557
Prohibit 'expect' lateinit member properties
...
#KT-20319 Fixed
2017-09-25 11:58:20 +03:00
Alexander Udalov
1f992ed845
Improve error on 'expect' delegated property
...
#KT-15054 Fixed
#KT-15055 Fixed
2017-09-25 11:58:20 +03:00
Mikhail Glukhikh
9b0f15137f
Expect/actual: introduce DEPRECATED_MODIFIER instead of ..._FOR_TARGET
2017-09-18 16:19:41 +03:00
Mikhail Glukhikh
fcc84d00c3
Migration: make header/impl/expect/actual contradictory to each other
2017-09-15 18:30:25 +03:00
Stanislav Erokhin
2b186909d4
Migrate diagnostic names for header/impl
2017-09-15 18:29:29 +03:00
Mikhail Glukhikh
5d25106267
Migration: deprecation tests for header/impl
2017-09-15 18:28:14 +03:00
Mikhail Glukhikh
dd8bed8b46
Migration: expect/actual in diagnostic tests
2017-09-15 18:28:07 +03:00
Mikhail Zarechenskiy
b574ddfba0
Deprecate syntax for assigning single named arguments to varargs
...
See more in KT-20171
2017-09-14 18:27:43 +03:00
Mikhail Zarechenskiy
68259f7939
Allow assigning array to vararg in named form in annotations
...
See more in KT-20171
2017-09-14 18:27:41 +03:00
Nikolay Krasko
b9872b7651
Render annotations in suspend functions in single modifier list (KT-20185)
...
#KT-20185 Fixed
2017-09-14 12:28:26 +03:00
Dmitry Petrov
4c2cfd3ea9
Synthesized 'copy' in data classes cannot override anything since 1.3
...
Synthesized 'copy' introduces default values for parameters, which is
prohibited for regular overrides.
Report warning in language version 1.2-, error in 1.3+.
2017-09-14 10:13:22 +03:00
Alexander Udalov
9ae6feb2c5
Temporarily remove JvmPackageName and tests, but keep the implementation
...
This is needed because we want the compiler code to stay as much the
same in master and in 1.2 as possible
2017-09-13 23:23:36 +03:00
Alexander Udalov
e8e38d90ff
Validate JvmPackageName annotation value and placement
...
- do not allow it to be used together with JvmMultifileClass (otherwise
implementation becomes complex)
- do not allow to declare classes in a JvmPackageName-annotated file
(similarly, the implementation of this would be much harder in the
compiler, and there would need to be special support in the IDE)
- check that the value is a valid FQ name
- do not allow root package just in case
2017-09-13 22:59:03 +03:00
Alexander Udalov
234148518e
Temporarily remove isInitialized and tests, but keep the implementation
...
This is needed because we want the compiler code to stay as much the
same in master and in 1.2 as possible
2017-09-13 22:51:23 +03:00
Alexander Udalov
c6263ac8e6
Support isInitialized intrinsic for lateinit properties
...
See https://github.com/Kotlin/KEEP/pull/73
#KT-9327 Fixed
2017-09-13 22:49:26 +03:00
Zalim Bashorov
30c7f633bd
KJS: don't load declarations marked by PlatformDependent annotation
...
#KT-17450 Fixed
2017-09-13 02:18:43 +03:00
Mikhail Zarechenskiy
e16d16fdb7
Do not report diagnostic about annotation with receiver target twice
2017-09-12 17:39:24 +03:00
Mikhail Zarechenskiy
2048a74302
Introduce Language Feature for annotations with wrong targets
...
#KT-9580 Fixed
2017-09-12 17:39:23 +03:00
Mikhail Zarechenskiy
a4766cc293
Report errors on annotations with wrong use site targets
...
#KT-9580 In Progress
2017-09-12 17:39:22 +03:00
Alexander Udalov
ac1c7d9a6a
Drop Incompatible.NoImpl, fix no "missing impl" on nested class
...
Header/impl declarations are now considered fully compatible even in the
case when the impl declaration has no "impl" modifier. The error about
no "impl" is now reported separately and only on the impl declaration,
never on the header declaration
#KT-20087 Fixed
2017-09-12 14:41:11 +03:00
Dmitry Petrov
38d1d06e6e
Update modifier applicability tests for LV 1.2
2017-09-12 11:54:04 +03:00
Dmitry Petrov
4428798c61
Change diagnostic message and rename to NESTED_CLASS_DEPRECATED
2017-09-11 09:42:18 +03:00
Dmitry Petrov
26b2f59b86
Check that resolve works properly with inner classes in enum entries
2017-09-11 09:42:18 +03:00
Dmitry Petrov
ba2c3136bb
Prohibit non-inner classes in enum entries since 1.3
2017-09-11 09:42:18 +03:00
Dmitry Petrov
ea91a0794d
Allow modifier 'inner' on a class nested in enum entry class
2017-09-11 09:42:18 +03:00
Dmitry Petrov
488a825349
Specialize diagnostic message for nested classes not allowed
2017-09-11 09:42:18 +03:00
Alexey Andreev
c65a79bca4
Fix tests for inline cycle diagnostics in JS
2017-09-08 18:27:42 +03:00
Alexander Udalov
2877314313
Support "::foo" as a short-hand for "this::foo"
...
#KT-15667 Fixed
2017-09-08 10:59:44 +03:00
Mikhail Zarechenskiy
088800d82f
Report error about val reassignment via backing field since Kotlin 1.3
...
Also improve message for current warning
#KT-16681 Fixed
2017-09-07 12:54:31 +03:00