Denis Zharkov
993d226c8f
Minor. Extract method for annotations resolution on expression
2016-10-12 11:39:04 +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
Denis Zharkov
c01b4156d8
Minor. Rename methods in parser
...
Method that was called `parseControlStructureBody` is actually used for
loop bodies only, while `parseExpressionPreferringBlocks` used for
parsing body of control structure (i.e. it must be called
`parseControlStructureBody`)
2016-10-12 11:39:04 +03:00
Valentin Kipyatkov
452b77692d
Incremented binary stub version because of changes with annotation rendering in decompiler
2016-10-11 23:43:45 +03:00
Valentin Kipyatkov
5e32589084
Do not take ParameterName annotations into implicit lambda signature
2016-10-11 23:38:55 +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
86495fd136
No parameter name in functional type of lambda with 'it'
2016-10-11 23:38:53 +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
3bd39df587
No parameter names in types for error messages
2016-10-11 23:38:50 +03:00
Valentin Kipyatkov
6527ada775
Changes on code review
2016-10-11 23:38:50 +03:00
Valentin Kipyatkov
d8759fcbcc
Optimizations
2016-10-11 23:38:50 +03:00
Valentin Kipyatkov
147d1da1ed
Supported obtaining function type parameter names from KotlinType
2016-10-11 23:38:48 +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
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