Alexey Andreev
4e2b1d68cf
KT-2752: deprecate parameter of @native annotation, prohibit simultaneous usage of parameterized @native and @JsName
2016-10-08 19:25:42 +03:00
Alexey Andreev
49022fd5bc
KT-2752: move some diagnostics from entire declarations to their headers
2016-10-08 19:25:41 +03:00
Alexey Andreev
681a428473
KT-2752: prohibit JSName on extension properties
2016-10-08 19:25:36 +03:00
Alexey Andreev
1dcb037aee
KT-2752: remove diagnostic that reports about overridden method having several names from different sources. Generate proxies instead. Fix reporting name clash when two distinct fake overrides require same name.
2016-10-08 19:25:35 +03:00
Alexey Andreev
c5087779e4
KT-2752: add diagnostics that reports about conflicting overridden declarations
2016-10-08 19:25:34 +03:00
Alexey Andreev
16c172f053
KT-2752: add diagnostic that reports about applying JsName on overridden declarations
2016-10-08 19:25:33 +03:00
Alexey Andreev
725d13b72e
KT-2752: fix JsName with explicit use target. Add some tests for JsName with use targets
2016-10-08 19:25:33 +03:00
Alexey Andreev
be0013d9f2
KT-2752: declare properties as a pair of functions when accessors are marked with @JsName
2016-10-08 19:25:32 +03:00
Alexey Andreev
6e1a0901ac
KT-2752: add checkers for inconsistent usage of JsName
2016-10-08 19:25:31 +03:00
Alexey Andreev
7a7a6914a6
KT-2752: fix old tests, add test for clashing between class and its companion object
2016-10-08 19:25:30 +03:00
Alexey Andreev
50dd1e31c3
KT-2752: move tests, that check whether there's no name clash, to JS backend tests
2016-10-08 19:25:29 +03:00
Alexey Andreev
5ce158f297
KT-2752: add basic tests for JsName
2016-10-08 19:25:28 +03:00
Alexey Andreev
8738458c34
KT-2752: fix name clash diagnostic for case of extension property. Add more tests for the diagnostic
2016-10-08 19:25:27 +03:00
Alexey Andreev
8f829557c8
KT-2752: add diagnostic that checks whether Kotlin declarations produce conflicting names in generated JS
2016-10-08 19:25:26 +03:00
Alexander Udalov
8949ffbef1
Do not report deprecation on members of deprecated companion
...
This deprecation is reported on the companion itself anyway
2016-10-07 20:14:53 +03:00
Denis Zharkov
dfb9b323ff
Avoid generation of redundant abstract special stubs
...
#KT-13698 Fixed
2016-10-07 11:59:15 +03:00
Denis Zharkov
6e838f0adc
Avoid generation of redundant toArray stubs
...
#KT-13698 In Progress
2016-10-07 11:59:15 +03:00
Denis Zharkov
e05e0ec921
Optimize method count for collection stubs
...
Do not generate stubs if they're already present in superclasses
#KT-13698 In Progress
2016-10-07 11:59:15 +03:00
Denis Zharkov
900c442efd
Write generic signature for autogenerated toArray
...
#KT-14195 Fixed
2016-10-07 11:59:15 +03:00
Denis Zharkov
3a100d4139
Improve exception message in collection stubs
2016-10-07 11:59:15 +03:00
Denis Zharkov
8ee568105c
Do not generate collection stubs for Kotlin-specific signatures
...
#KT-14188 Fixed
2016-10-07 11:59:15 +03:00
Mikhail Glukhikh
e7d290f726
Refactor PSI for destructuring declarations in for: they are now children of KtParameter and not instead of it
2016-10-06 21:03:19 +03:00
Alexander Udalov
8ffe379c92
Use separate module analysis in CliReplAnalyzerEngine
2016-10-06 14:40:21 +03:00
Alexander Udalov
1e51ba7d00
Run classifier usage checkers for ambiguous references when possible
...
See comment in getReferencedClassifier and importJavaSamInterface.kt for
explanation
2016-10-06 14:40:21 +03:00
Alexander Udalov
ec53efd869
Run classifier usage checkers after all imports are resolved
...
Otherwise the diagnostic was not reported on an unused import of a deprecated
class in diagnostic tests, see the test case
2016-10-06 14:40:20 +03:00
Alexey Tsvetkov
8fa7e1f93e
Minor: JS test fix
2016-10-05 22:50:46 +03:00
Nikolay Krasko
3d9d6e666d
Test several line numbers are generated for one instruction
...
(cherry picked from commit 1ea9280)
2016-10-05 18:49:38 +03:00
Denis Zharkov
7353b08f09
Change parsing of statements starting with annotations
...
If a block statement starts with annotations treat them as they
belong to node of the statement rather than to the closest prefix expression
#KT-10210 Fixed
2016-10-05 10:29:29 +03:00
Denis Zharkov
a4978c794f
Fix accidental overrides computation
...
Consider the whole overridden tree instead of only direct overridden
#KT-14146 Fixed
2016-10-04 16:47:10 +03:00
Alexander Udalov
73652f309f
Do not create synthesized equals/hashCode/toString in data classes in compatibility mode
...
To simplify migration from 1.0 to 1.1, do not allow data classes to
automatically implement abstract equals/hashCode/toString declared in
super-interfaces (KT-11306) if "-language-version 1.0" is specified
2016-10-04 10:24:41 +03:00
Alexander Udalov
597912824b
Report error on declaring 'getClass' in class or package
...
#KT-14147 Fixed
2016-10-04 10:24:01 +03:00
Alexander Udalov
8fe57c8e84
Minor, fix apostrophes in diagnostic message
2016-10-03 21:52:18 +03:00
Michael Bogdanov
95a1c254e1
Added error diagnostic on inheriting target 6 interface
2016-10-03 14:13:17 +03:00
Michael Bogdanov
d9bb519b76
Don't generate delegation to jvm8 default methods
2016-10-03 14:06:01 +03:00
Michael Bogdanov
c19e035f91
Properly map super calls in typeMapper
2016-10-03 14:06:00 +03:00
Michael Bogdanov
5f1f4a067d
Map proper owner for method with default args
2016-10-03 14:06:00 +03:00
Michael Bogdanov
dd4d5e3aa1
Generate 'DefaultImpls' for jvm 8 target only within compiler option
2016-10-03 14:05:59 +03:00
Michael Bogdanov
ca41f01468
Generate interface property annotations in interface class (not in DefaultImpls)
2016-10-03 13:50:12 +03:00
Michael Bogdanov
dfd5be1a33
Generate all bodies in interfaces as default methods
2016-10-03 13:50:11 +03:00
Dmitry Petrov
06101dba52
KT-13961 REDECLARATION not reported on private-in-file 'foo' vs public 'foo' in different file
...
Private-in-file declarations conflict with public overload-equivalent declarations
in other files in the same package.
Move functions for grouping possible redeclarations to OverloadResolver
(since they are used only there).
Refactor redeclarations / conflicting overloads reporting.
2016-10-03 11:50:29 +03:00
Alexander Udalov
45190d9453
Support separate modules in compiler
...
Unless the compatibility option "-Xsingle-module" is passed, the compiler will
create two modules instead of one now (see TopDownAnalyzerFacadeForJVM): the
main module contains Kotlin and Java sources and binaries from the previous
compilation of the given module chunk, the dependency module contains all other
Kotlin and Java binaries. This fixes some issues where the compiler couldn't
detect that the used symbol was from another module, and did not forbid some
usages which are only possible inside the module (see KT-10001).
The ideal way to deal with modules here would be to exactly recreate the
project structure, for example as it's done in JvmAnalyzerFacade and usages.
This is postponed until later
#KT-10001 Fixed
#KT-11840 In Progress
2016-10-02 21:15:47 +03:00
Alexander Udalov
610c549225
Filter out equivalent calls before reporting "none applicable"
...
If a module is configured in such a way that the same function appears multiple
times via different dependencies, it's not helpful to report "none of the
following functions can be called", listing the same function multiple times
2016-10-02 21:03:30 +03:00
Alexander Udalov
74d6ef73d4
Prevent double initialization in codegen tests, fix ScriptGenTest#testDependentScripts
...
Add an assertion to prevent duplicate initialization of CodegenTestFiles
instance in CodegenTestCase, which was happening in ScriptGenTest with multiple
invocation of loadFile()
2016-10-02 21:03:28 +03:00
Denis Zharkov
d4418d5686
Prohibit not-Unit suspend functions
...
#KT-13560 Fixed
2016-09-30 12:25:59 +03:00
Denis Zharkov
96186c6217
Prohibit star-projections in last parameter of suspend functions
2016-09-30 12:25:59 +03:00
Dmitry Petrov
bd95d2ef4c
KT-14071 Type alias cannot be used as a qualifier for super
...
Use corresponding class for type alias in super qualifier resolution.
2016-09-30 10:17:30 +03:00
Vsevolod
1ac07340c9
KT-13931 generate IntRange#contains with respect to side-effects on argument loading, test added
2016-09-29 17:56:18 +03:00
Mikhail Glukhikh
f95dcad179
CFA minor: retain initialization state while analyzing variable declaration
...
(cherry picked from commit c89f4db)
2016-09-29 15:57:01 +03:00
Mikhail Glukhikh
436b0ec873
CFA merge for definition / initialization : more accurate handling of unknown variables #KT-13969 Fixed
...
(cherry picked from commit 4a96589)
2016-09-29 15:56:47 +03:00
Denis Zharkov
bb1b8cca20
Fix AssertionError in CodegenUtil.getDelegates
...
Change getAllOverriddenDescriptors contracti, now it returns
original (not substituted) descriptors without any duplicates.
First of all it's necessary in CodegenUtil.getDelegates to avoid
duplicates (see assertion there), but also it's convenient for all
other usages of this method
#KT-8154 Fixed
2016-09-28 11:40:35 +03:00