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
Dmitry Petrov
2b27e64fc8
Improve diagnostics for "not yet supported in inline"
...
- Tell user what exactly is not supported (e.g., local inline function)
- Reduce diagnostics range to a keyword or an identifier
where appropriate
#KT-16223 Fixed Target versions 1.1.50
2017-09-06 09:46:33 +03:00
Mikhail Zarechenskiy
a3060f1073
Add test on obsolete issue
...
#KT-9203 Obsolete
2017-09-05 16:15:18 +03:00
Mikhail Zarechenskiy
e7449a3584
Fix referencing inner class constructor on an outer class instance
...
#KT-12796 Fixed
2017-09-05 14:41:44 +03:00
Mikhail Zarechenskiy
4a6f35b9c2
Fix exception on invalid code, don't resolve uninitialized type
...
#KT-11963 Fixed
2017-09-05 14:41:42 +03:00
Mikhail Zarechenskiy
6d4bb229ac
Fix compilation exception where overload ambiguity should be
...
#KT-16246 Fixed
2017-09-05 14:41:40 +03:00
Mikhail Zarechenskiy
ec512d1c8a
Add tests on obsolete issues
...
#KT-11236 Obsolete
#KT-12399 Obsolete
2017-09-05 14:41:34 +03:00
Alexey Andreev
28c9d274ec
JS: prohibit illegal chars on dynamic call site
...
See KT-19540
2017-09-04 15:35:00 +03:00
Mikhail Zarechenskiy
f5222600d8
Improve diagnostics for fake calls when type inference failed
...
#KT-13665 Fixed
2017-09-01 02:05:58 +03:00
Mikhail Zarechenskiy
17b4874c37
Refactor FakeCallResolver, make error reporting simpler
2017-09-01 02:05:50 +03:00
Dmitry Petrov
b12e20b2a3
Minor: move local lateinit tests to lateinit/local
2017-08-31 11:28:08 +03:00
Dmitry Petrov
bbf9bf91fc
Check language feature support for local and top-level lateinit vars
2017-08-31 11:28:08 +03:00
Dmitry Petrov
d951e957ea
Support lateinit modifier on top-level properties
...
Allow lateinit modifier on top-level properties.
Modifiers 'lateinit' and 'header' are incompatible.
2017-08-31 11:28:08 +03:00
Dmitry Petrov
53961e8df0
Check lateinit applicability for local variables
...
TODO probably should be refactored together with DeclarationsChecker
2017-08-31 11:28:08 +03:00
Dmitry Petrov
3bae430d49
Resolve lateinit variables
...
Do not report UNINITIALIZED_VARIABLE on lateinit variables
Provide delegating constructors for descriptors for compatibility.
2017-08-31 11:28:08 +03:00
Dmitry Petrov
f88cd5ed3d
Allow 'lateinit' modifier on local variables
2017-08-31 11:28:08 +03:00
Denis Zharkov
d6fbb084b1
Use the same temporary trace for analyzing all candidate calls
...
Otherwise, when completing all the unsuccessfull candiates,
resolution of each lambda-arguments starts repeatedly for each candidate
that leads to exponential time
NB: Changes in `completeArguments` are necessary because otherwise
nested lambdas will be analyzed twice:
once for the main resolved call, and then for all candidates
that again leads to exponential complexity
#KT-16672 Fixed
#KT-19457 Fixed
2017-08-30 12:51:29 +03:00