Commit Graph

44357 Commits

Author SHA1 Message Date
Dmitry Savvinov d570b863ce Introduce deprecation of companion objects nested classes
Introdude deprecation as per KT-21515. Warning is reported on type
usage, that soon will became invisible. Quickfix by adding explicit
import is added.

Idea behind implementation is to mark scopes that are deprecated (see
ClassResolutionScopesSupport).

Then, during walk along hierarchy of scopes, look at deprecation status
of the scope that has provided this classifier.
Note that we also have to check if there are *some* non-deprecated
visibility paths (because we can see classifier by two paths, e.g. if
we've added explicit import) -- then this type reference shouldn't be
treated as deprecated.
2018-02-21 16:04:49 +03:00
Mikhail Glukhikh acd8edaa9c WEAK_WARNING -> GENERIC_ERROR_OR_WARNING in three inspections
Now there inspection use configured highlight level instead of
forced weak warning: null check to safe call, reformat, sort modifiers
2018-02-21 15:59:59 +03:00
Alexey Sedunov 17e64ebae0 Move: Fix processing of callable references to nested Java classes and static methods
#KT-17827 Fixed
2018-02-21 13:21:20 +03:00
Alexey Sedunov 441f88c144 Move: Fix processing of callable references to nested Kotlin classes
#KT-17827 In Progress
2018-02-21 13:21:19 +03:00
Alexey Sedunov bdfc814389 Move: Fix scope of internal reference recovery in the case of file move
#KT-22282 Fixed
2018-02-21 13:21:19 +03:00
Alexey Sedunov 4537192e86 Move: Check if sealed class is moved with its subclasses
#KT-22769 Fixed
2018-02-21 13:21:18 +03:00
Alexey Sedunov 27d4593fc4 Move: Fix lengthening of qualified type references
KT-14519 Fixed
2018-02-21 13:21:18 +03:00
Alexey Sedunov 1af21dd160 Move: Warn about moving public declaration to non-public class
#KT-22771 Fixed
2018-02-21 13:21:18 +03:00
Alexey Sedunov acf6408474 Create from Usage: Fix "Create class" applicability check for when entries
#KT-22329 Fixed
2018-02-21 13:21:17 +03:00
Alexey Sedunov 0934859718 Create from Usage: Revert suggested container order for "Create Class"
#KT-22917 Fixed
2018-02-21 13:21:17 +03:00
Dmitry Jemerov 9e30ede998 Fix ISE in KotlinPairMatcher.getCodeConstructStart() 2018-02-21 10:13:08 +01:00
Yan Zhulanow 2fdadb0f5a Evaluator: Send class bytecode array in loop with a limited chunk size (#KT-22967)
JDI in Android has a limited byte buffer size (8192), and we must not exceed it.
2018-02-20 23:19:59 +03:00
Yan Zhulanow dfc007ebd3 Use thread-safe WeakHashMap implementation in annotation-based IDE plugins (#KT-22514) 2018-02-20 23:19:35 +03:00
Mikhail Glukhikh 84993ec3a0 Resolution API: introduce and use KtElement.resolveToCall() 2018-02-20 20:25:42 +03:00
Mikhail Glukhikh 513376e5f0 Introduce KtNamedFunction.resolveToDescriptorIfAny() 2018-02-20 20:25:42 +03:00
Mikhail Glukhikh 5848bc9a44 Introduce KtClassOrObject.resolveToDescriptorIfAny() 2018-02-20 20:25:42 +03:00
Mikhail Glukhikh bd0cbb716c Rename: analyzeWithDeclarations --> analyzeWithContent() 2018-02-20 20:25:41 +03:00
Mikhail Glukhikh f6513cd17e Introduce resolveToParameterDescriptorIfAny(), drop reified version 2018-02-20 20:25:41 +03:00
Mikhail Glukhikh 7a1b3cd224 Introduce & use resolveToDescriptorIfAny<DescriptorType>
This allows to omit casts after resolveToDescriptorIfAny() call,
get different descriptors for different receivers (in future),
distinguish parameter / property situation for primary constructor
2018-02-20 20:25:41 +03:00
Mikhail Glukhikh 8c97f8cbb5 Deprecate KtElement.analyzeFullyAndGetResult(), use analyzeAndGetResult 2018-02-20 20:25:41 +03:00
Mikhail Glukhikh cd1745d354 Light classes: analyzeFully() --> analyzeWithDeclarations() 2018-02-20 20:25:41 +03:00
Mikhail Glukhikh eabc7c9ba8 Replace some KtDeclaration.analyze() with resolveToDescriptorIfAny()
Also, enhance comment on KtElement.analyze()
2018-02-20 20:25:40 +03:00
Mikhail Glukhikh 88b8652ed2 J2K: convert + get rid of analyzeFully (3 files) 2018-02-20 20:25:40 +03:00
Mikhail Glukhikh 50ce8d68bf J2K: rename *.java --> *.kt (3 files) 2018-02-20 20:25:40 +03:00
Mikhail Glukhikh 1ca1a6dddc KotlinFrameExtraVariablesProvider: add analyze / analyzeFully comment 2018-02-20 20:25:40 +03:00
Mikhail Glukhikh 135c06dc96 Android goto tests: analyzeFully --> analyze 2018-02-20 20:25:39 +03:00
Mikhail Glukhikh c1f7303fa3 CanBePrimaryConstructorProperty: analyzeFully --> analyze 2018-02-20 20:25:39 +03:00
Mikhail Glukhikh 57d0da9843 MoveMemberOutOfCompanionObject: reformat 2018-02-20 20:25:39 +03:00
Mikhail Glukhikh d4dbd4cd6a MoveMemberOutOfCompanionObject: analyzeFully --> analyze 2018-02-20 20:25:39 +03:00
Mikhail Glukhikh 8986b8a1a2 Introduce analyzeWithContent() & analyzeWithDeclarations()
These functions have more clear names & receivers.
Old analyzeFully() applied on KtElement made deprecated
because for general KtElement it's unclear what is "full analysis"
2018-02-20 20:25:38 +03:00
Mikhail Glukhikh e78bd73ba3 LeakingThisInspection: add comment about analyzeFully 2018-02-20 20:25:38 +03:00
Mikhail Glukhikh 2038a5567d ResolveElementCache: remove dead branch 2018-02-20 20:25:38 +03:00
Mikhail Glukhikh 52166646bb Reformat: ResolveElementCache 2018-02-20 20:25:37 +03:00
Alexey Sedunov ba71e732a9 Misc: Extract "KotlinSdkAdded" test to separate test case
This is needed due to application being initialized only once per test case,
while Kotlin SDK is configured during PluginStartupComponent initialization
2018-02-20 19:27:23 +03:00
gzoritchak 1c1fe10e12 Add samples for take* and drop* extensions (KT-20357)
- Add samples for take, takeLast, takeWhile, takeLastWhile
- Add samples for drop, dropLast, dropWhile, dropLastWhile
2018-02-20 19:24:27 +03:00
Mikhail Glukhikh fda40723dc Downgrade LoopToCallChainInspection to INFORMATION level 2018-02-20 19:08:01 +03:00
Vyacheslav Gerasimov 9b4f1156d8 Generate dependencies.properties used by dokka build
was missing after migration to custom-build
2018-02-20 17:56:57 +03:00
Nikolay Krasko d1eabb3e67 Wrap Kotlin exception filter call to read action (EA-116446)
See IDEA-186950 for details.
2018-02-20 17:36:54 +03:00
Sergey Igushkin 5901c2163f Add the expectedBy dependency to the compile configuration
Enable its propagation through transitive dependencies (including
POMs generated by Gradle)

Issue #KT-22824 Fixed
2018-02-20 17:24:22 +03:00
Sergey Igushkin 3836dcab85 Fix -Xmulti-platform dropped from args when freeCompilerArgs is assigned
in user build script

Issue #KT-15371 Fixed
2018-02-20 17:23:10 +03:00
Sergey Igushkin 37b34cff25 Allow multiple expectedBy dependencies in Gradle MPP support
Issue #KT-22864 Fixed
2018-02-20 17:23:10 +03:00
Mikhail Zarechenskiy f23b5103ec Avoid non-null assertions for inline classes based on nullable types
Note that there are more places where assertions for inline classes should refined:
  - lateinit vars
  - values that come from Java
  - type casts (interfaces to inline class type)
2018-02-20 14:41:48 +03:00
Natalia Selezneva e3c58eced1 Fix ConfigureKotlinInTempDirTest.testKotlinSdkAdded 2018-02-20 14:28:09 +03:00
Vyacheslav Gerasimov b831b8ab92 Introduce intellijEnforceCommunitySdk flag to disable ultimate repo 2018-02-20 14:26:12 +03:00
Mikhail Glukhikh 02ee641daa Add CommonModuleResolveScopeEnlarger providing correct scope for commons
So #KT-22873 Fixed
So #KT-22858 Fixed
So #KT-22853 Fixed
2018-02-20 13:14:45 +03:00
Dmitry Savvinov e071d054c9 Refactor DataFlowValueFactory implementation into several separate files 2018-02-20 13:11:33 +03:00
Dmitry Savvinov 0929673576 Refactor DataFlowValueFactory into proper component 2018-02-20 13:11:33 +03:00
Denis Zharkov 03567a1c01 Add @SinceKotlin("1.2") to kotlin.suspend 2018-02-20 11:59:39 +03:00
Mikhail Zarechenskiy 413e2d7fa1 Fix KotlinType of constructor call for inline classes 2018-02-20 11:58:18 +03:00
Mikhail Zarechenskiy 530dd01ca6 Fix unboxing values of inline class type from type parameters 2018-02-20 11:45:49 +03:00