Dmitry Petrov
1600037625
KT-14307, KT-14377: Run declaration checks on local type aliases.
2016-10-17 16:22:04 +03:00
Dmitry Petrov
753a558bcb
KT-14352 Record short reference to companion object via type alias,
...
so that it would be checked properly.
2016-10-17 10:11:58 +03:00
Zalim Bashorov
c21e1eb857
Report error when try to use unsupported reflection API in Kotlin JS; allow to use kotlin.Any members on reflection classes for both platforms.
2016-10-14 19:44:58 +03:00
Dmitry Petrov
47b3420a65
Minor: testData fix after rebase
2016-10-13 18:03:00 +03:00
Dmitry Petrov
e7ca00d91b
Support @SinceKotlin annotation for type aliases.
2016-10-13 17:52:21 +03:00
Dmitry Petrov
8d634f6003
KT-14274: resolve type alias constructors calls in supertypes list as type alias constructors.
...
Support @Deprecated for type aliases, including type alias constructors.
2016-10-13 17:52:21 +03:00
Dmitry Petrov
d2d8f72ffc
Annotations on type aliases: typealias is not a "default target".
...
Add diagnostic test for annotations on type aliases.
2016-10-13 17:52:21 +03:00
Dmitry Petrov
c6350e1afb
Concatenate annotations in type alias expansion.
2016-10-13 17:44:14 +03:00
Mikhail Glukhikh
7a41d13b41
Do not add special names to scopes #KT-14319 Fixed
2016-10-13 17:17:05 +03:00
Ilya Gorbunov
2a7717214b
Annotate new API with @SinceKotlin in kotlin-runtime except reflection and type aliases.
2016-10-13 08:37:31 +03:00
Ilya Chernikov
846797ff61
Switch to templates in the separate script runtime
2016-10-12 15:38:52 +02:00
Alexander Udalov
777004a0e2
Fix test data after merge
2016-10-12 12:52:38 +03:00
Denis Zharkov
84153f9636
Add warning for ambiguous annotated expression syntax
...
#KT-14238 In Progress
2016-10-12 11:40:12 +03:00
Denis Zharkov
bec84b1d7b
Change parsing of annotations on block level expressions
...
Attach annotations to the closest prefix expression instead of
whole statement if no new line found after annotations
The motivation is for a simple annotated expression like '@ann x + y'
its syntax form must not change after prepending 'val z = ' just before it
2016-10-12 11:39:04 +03:00
Denis Zharkov
9ff439e39e
Change annotations parsing in bodies of operators
...
This change only matters in cases of if/when/for/while having braceless
blocks
Annotations on them are parsed now as on block-level expressions, i.e.
they're attached to the whole expression
2016-10-12 11:39:04 +03:00
Valentin Kipyatkov
31a4c6671e
Fixed incorrect test
2016-10-11 23:38:55 +03:00
Valentin Kipyatkov
968a6cfd04
DescriptorRenderer to skip @ExtensionFunctionType and @ParameterName only when it's redundant
2016-10-11 23:38:54 +03:00
Valentin Kipyatkov
ec51076355
DescriptorRenderer to render annotations for all types + separate option to render annotation arguments + use it in IdeDescriptorRenderers
2016-10-11 23:38:54 +03:00
Valentin Kipyatkov
8baa9ba1de
No parameter names in type of lambda expression and anonymous function
2016-10-11 23:38:54 +03:00
Valentin Kipyatkov
4513f679de
Fixed test data
2016-10-11 23:38:53 +03:00
Valentin Kipyatkov
7f0063013c
Corrected test data
2016-10-11 23:38:52 +03:00
Valentin Kipyatkov
59269ef1ae
ParameterName annotation on type argument used to hold parameter name
2016-10-11 23:38:51 +03:00
Valentin Kipyatkov
6b94e5fd34
Use parameter names from function type for invoke() function
...
#KT-435 Fixed
#KT-9016 Fixed
2016-10-11 23:38:49 +03:00
Valentin Kipyatkov
41ee06ec96
Use parameter names in DescriptorRenderer
2016-10-11 23:38:49 +03:00
Alexander Udalov
4eac12e350
Report warning when SinceKotlin value is greater than -api-version value
...
To prevent this diagnostic be reported in each test on SinceKotlin, disable it
when a diagnostic test contains the "!API_VERSION" directive
2016-10-11 17:46:14 +03:00
Alexander Udalov
167ab1f860
Introduce "-api-version" CLI option
...
The `@SinceKotlin("X.Y.Z")` annotation now hides a particular declaration from
resolution when the API version specified by the `-api-version` option is
_less_ than X.Y.Z. The comparison is performed as for versions in Maven:
MavenComparableVersion is in fact a copy of
org.apache.maven.artifact.versioning.ComparableVersion.
Also support "!API_VERSION" directive in diagnostic tests
#KT-14298 Fixed
2016-10-11 17:46:01 +03:00
Alexander Udalov
e3df8ed2fe
Introduce SinceKotlin annotation, check validity of its value
...
#KT-14297 Fixed
2016-10-11 17:45:51 +03:00
Alexander Udalov
aaeae8b948
Support deprecation level HIDDEN for classifiers
...
Classifiers annotated with `@Deprecated(level = HIDDEN)` now have smaller
priority in imports, similarly to private classes. For example, if two
classifiers named Foo are imported with a star import and one of them is
deprecated-hidden, the name Foo in the source code is resolved to the other
one.
Also a minor change in multi-module diagnostic tests: do not append newlines
after the last module in the test
#KT-13926 Fixed
2016-10-11 17:30:14 +03:00
Alexander Udalov
83c86d06ed
Report error instead of warning for deprecation level HIDDEN
...
Since functions usually are hidden from resolution when they are
deprecated-hidden, the problem can only be reproduced for properties with
deprecated-hidden accessors, where DeprecatedCallChecker reported warnings
instead of errors
2016-10-11 17:30:13 +03:00
Alexander Udalov
2e4592c6dc
Report error on bound callable references in compatibility mode
...
Previously examples were failing with IllegalStateException from JVM back-end
because there was an error type without any error reported
2016-10-11 17:30:10 +03:00
Ilya Gorbunov
16a0c55c6c
Since 'printStackTrace' now fallbacks to the extension in stdlib, change the test expecting it to be deprecated due to language-version 1.0 accordingly.
2016-10-11 16:46:14 +03:00
Dmitry Petrov
2cd6b1d586
KT-14282 No error on unused type alias with -language-version 1.0
...
Always resolve descriptors for type aliases.
2016-10-11 16:33:21 +03:00
Mikhail Glukhikh
8d48b0d2a0
UNUSED_VARIABLE is now reported only for last entry of destructuring declaration (if applicable) #KT-14221 Fixed
2016-10-10 14:42:09 +03:00
Alexey Andreev
c814a9d1d2
KT-2752: fix support of typealiases
2016-10-08 19:25:52 +03:00
Alexey Andreev
6f7e7d8504
KT-2752: fixes after code review
2016-10-08 19:25:49 +03:00
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