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
2c66d4e59b
Move LanguageVersionSettings and JvmTarget to module 'util'
...
To be used from cli-common in the subsequent commits
2016-10-11 17:30:14 +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
6e0e8c6dc3
Pass LanguageVersionSettings instance to isHiddenInResolution
...
Unused at the moment, will be used later to check if the API version prohibits
the usage of the element
2016-10-11 17:30:12 +03:00
Alexander Udalov
59b29cf00d
Minor, extract isDeprecatedHidden for usage in codegen
...
Also remove a hundred year old TODO
2016-10-11 17:30:11 +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
Valentin Kipyatkov
73dc5fefcb
KT-12077 Code completion inserts FQN for annotations with use-site target inside primary constructor
...
KT-13009 Kotlin: annotation auto-import is broken in multiple ways
#KT-12077 Fixed
#KT-13009 Fixed
2016-10-11 17:26:52 +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
Denis Zharkov
543cf7b265
Minor. Move isJvmStatic* functions to backend
2016-10-11 12:22:03 +03:00
Ilya Gorbunov
5042158df5
Determine automatically which types from java.lang is aliased in default imported kotlin packages and exclude them from imported java.lang.* scope.
2016-10-10 20:14:32 +03:00
Valentin Kipyatkov
326db55835
Used KtReference.resolvesByNames instead of own code
2016-10-10 14:48:16 +03:00
Valentin Kipyatkov
5734f2ba9b
KT-9950 IntelliJ IDEA does not suggest importing extension methods which have the same name as an instance method
...
#KT-9950 Fixed
2016-10-10 14:48:15 +03:00
Valentin Kipyatkov
c06e2d994e
KT-13884 Exception "Invalid root block PSI element" on replacing trivial when-expression to if
...
#KT-13884 Fixed
2016-10-10 14:48:15 +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
Mikhail Glukhikh
126304c197
Destructure intention applied (compiler)
2016-10-10 14:42:04 +03:00
Alexey Andreev
6f7e7d8504
KT-2752: fixes after code review
2016-10-08 19:25:49 +03:00
Alexey Sedunov
d3c14ce7d6
Extract Function: Support implicit abnormal exits via Nothing-typed expressions
2016-10-07 20:20:39 +03:00
Alexey Sedunov
fe711da594
Rename: Rename do-while loop variables in the loop condition
...
#KT-14157 Fixed
2016-10-07 20:20:33 +03:00
Alexander Udalov
9004367f3c
Minor refactoring in DeprecatedCallChecker
2016-10-07 20:14:54 +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
Alexander Udalov
b08ed14f66
Rename PlatformTypesMappedToKotlinChecker -> PlatformClassesMappedToKotlinChecker
...
To prevent confusion with the term "platform type" which has gained a new
meaning since this class was introduced
2016-10-07 20:14:05 +03:00
Alexander Udalov
6ec868d84e
Pass LanguageVersionSettings to ClassifierUsageChecker
...
To be used in future classifier usage checkers
2016-10-07 20:13:24 +03:00
Mikhail Glukhikh
375a2cc6ab
Build fix (AdditionalResolveDescriptorRendererTestGenerated)
2016-10-07 17:04:29 +03:00
Yan Zhulanow
16a9941549
Kapt: Allow to make CompilerConfiguration mutable again
...
(cherry picked from commit 0780de8)
(cherry picked from commit 95dde72)
2016-10-07 16:28:18 +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
Mikhail Glukhikh
70949d10da
Refactoring + minor fixes: destructure intention
2016-10-06 21:16:46 +03:00
Mikhail Glukhikh
de865c6d46
getUseScope() fixed for destructuring declarations #KT-14181 Fixed
2016-10-06 21:03:24 +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
Mikhail Glukhikh
df0cf3da84
"Simplify using destructuring declaration" is now applicable for function literals #KT-13941 Fixed
2016-10-06 21:03:08 +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
Alexander Udalov
f7b4d7d35b
Move ClassifierUsageChecker and DeclarationChecker to checkers/
2016-10-06 14:40:20 +03:00
Alexander Udalov
0905b361d0
Drop LazyTopDownAnalyzerForTopLevel
...
Replace it everywhere with LazyTopDownAnalyzer
2016-10-06 14:40:20 +03:00
Alexander Udalov
9c70094ceb
Move resolveImportsInAllFiles to LazyTDA#analyzeDeclarations
...
This does not change the behavior: in the other usage of analyzeDeclarations,
a local class is being resolved and therefore TopDownAnalysisContext there does
not contain any files where imports would be resolved
2016-10-06 14:40:20 +03:00
Alexander Udalov
7070b88ea4
Move PlatformToKotlinClassMap out from ModuleParameters
...
Configure it in the same way as other platform-specific components instead,
simplify some code
2016-10-06 14:40:20 +03:00
Alexander Udalov
b77388bd48
Pass PlatformToKotlinClassMap instance to PlatformTypesMappedToKotlinChecker
...
The purpose of this change is to allow PlatformToKotlinClassMap to be removed
from ModuleDescriptor
2016-10-06 14:40:19 +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
001a058529
Remove effectively dead code in parser
...
`parseLabeledExpression` can only be called from `parsePrefixExpression`,
but the latter in the beginning tries to parse annotated expression,
thus advances any number of AT symbols
2016-10-05 10:29:29 +03:00
Dmitry Jemerov
d8b0c7aaec
Binding trace filtering: do not calculate diagnostics if no one is going to query them
2016-10-04 18:50:30 +02:00
Dmitry Jemerov
b365e547c4
DelegatingBindingTrace: remove unnecessary secondary constructor
2016-10-04 18:50:30 +02:00
Dmitry Jemerov
bcde67dc91
DelegatingBindingTrace: J2K
2016-10-04 18:50:30 +02:00
Dmitry Jemerov
9e6f03cd94
DelegatingBindingTrace: rename to .kt
2016-10-04 18:50:30 +02:00
Valentin Kipyatkov
af0b027952
All operator usages are searched with new searcher
2016-10-04 19:34:58 +03:00
Alexander Udalov
df680305ba
Improve diagnostic message for UNSUPPORTED_FEATURE
...
Render lowercase words separated by spaces instead of CamelCase in the
diagnostic message
2016-10-04 10:24:43 +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
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
214abea4d6
Minor, introduce DeclarationProviderFactory.EMPTY
2016-10-02 21:03:35 +03:00