Commit Graph

68993 Commits

Author SHA1 Message Date
Vladimir Dolzhenko 6f03e42ef7 Revert back Inspection: convert initialized val to non-null type
Relates to ^KT-35757
Relates to ^KT-19321
2020-09-09 23:38:21 +02:00
Vladimir Ilmov 12ebd429bc Revert "Light classes support for declarations in multipart classes."
This reverts commit 3ea51a982c.
2020-09-09 19:46:03 +02:00
Vladimir Dolzhenko d324ae6cda Fix AS 4.0 compilation 2020-09-09 17:59:49 +02:00
Ilmir Usmanov 0492a52a6a Minor. Regenerate tests 2020-09-09 17:43:43 +02:00
Ilmir Usmanov 52f9569d33 Generate CHECKCAST Object inside the markers
otherwise, the unboxing interferes with bytecode analysis.
2020-09-09 17:43:42 +02:00
Ilmir Usmanov e8a451072e Minor. Add tests with same JvmType in covariant override 2020-09-09 17:43:41 +02:00
Ilmir Usmanov 7cbd067460 Add tests with resume path 2020-09-09 17:43:39 +02:00
Ilmir Usmanov 1c97eafea8 Check for COROUTINE_SUSPENDED inside callable reference
#KT-41429 Fixed
2020-09-09 17:43:37 +02:00
Ilmir Usmanov 4303e8126f Do not generate suspend markers inside callable reference
#KT-41429
 #KT-25519 Fixed
2020-09-09 17:43:36 +02:00
Ilmir Usmanov ccc5b7afe0 Box inline class in resume path of suspend call
#KT-41429
2020-09-09 17:43:35 +02:00
Ilmir Usmanov 023cdd7cd4 Support not boxing inline class of reference class
even if the class is other than Any.
 #KT-41429 In progress
2020-09-09 17:43:34 +02:00
Toshiaki Kameyama 5c011bc954 Don't report when property is multi-line and action is MOVE 2020-09-09 22:31:56 +07:00
Toshiaki Kameyama 4569b85a16 MoveVariableDeclarationIntoWhenInspection: report it if initializer is single line even if property is multi line
#KT-39467 Fixed
2020-09-09 22:31:56 +07:00
Vladimir Ilmov 75d4c7e91c Find stdlib usages test case
relates to #KT-39196
2020-09-09 17:30:04 +02:00
Vladimir Ilmov 8b239d89b6 SourceNavigationHelper multifile classes support
Use .class files as BINARY instead of .metadata.
 relates to #KT-39196
2020-09-09 17:30:04 +02:00
Vyacheslav Gerasimov 3764eeba25 Build: Setup gradle.test-retry plugin for all test tasks in the project 2020-09-09 18:20:01 +03:00
Alexander Udalov 3d7619421f JVM IR: fix exception on star projection in type parameter upper bound
#KT-41761 Fixed
2020-09-09 17:07:52 +02:00
Victor Petukhov 685d16ec68 NI: don't do substitution for unsupported callable descriptors to use as callable references
^KT-41729 Fixed
2020-09-09 18:00:41 +03:00
Ilya Goncharov 668098f3a8 [Gradle, JS] Add simple files without kotlinx.html
^KT-41696 fixed
2020-09-09 17:24:08 +03:00
Vladimir Ilmov 3ea51a982c Light classes support for declarations in multipart classes.
relates to #KT-39196
2020-09-09 15:01:55 +02:00
Vladimir Ilmov a5d91339b5 (lightClass) multifile classes facade in libraries added
relates to #KT-39196
2020-09-09 15:01:54 +02:00
Vladimir Dolzhenko ac22232b8d Register disposable startup items in PluginStartupService 2020-09-09 12:51:19 +00:00
Vladimir Dolzhenko e5985ad98b Rename PluginStartupService to PluginStartupApplicationService 2020-09-09 12:51:18 +00:00
Victor Petukhov c1ebd33833 Capture flexible intersection types properly: take into account both bounds and use the same captured arguments for them
^KT-41693 Fixed
2020-09-09 14:52:12 +03:00
Victor Petukhov 140edb2215 Consider intersection with ILT subtype of ILT 2020-09-09 13:55:07 +03:00
Roman Golyshev 7bd9c52732 FIR Completion: Fix completion in function calls (foo.bar<caret>())
In such expressions, `KtCallExpression` wraps `KtSimpleNameExpression`,
so `getQualifiedExpressionForSelector()` returns `null`

Also, enable tests that are fixed by this
2020-09-09 13:14:08 +03:00
Roman Golyshev 2d4d48b401 FIR IDE: Invert the order of the scopes for completion
This way local declarations will be fetched first
2020-09-09 13:14:08 +03:00
Dmitriy Novozhilov f748d8cf70 [FIR] Extract ResolutionContext to separate file 2020-09-09 12:38:36 +03:00
Dmitriy Novozhilov 1a84ec9677 [FIR] Mark all session components respectively to they have mutable state or not
Also add documentation for all fir annotations
2020-09-09 12:38:35 +03:00
Dmitriy Novozhilov 8686e3779e [FIR] Make all session components abstract classes 2020-09-09 12:38:35 +03:00
Dmitriy Novozhilov caf325934c [FIR] Unmake FirSamResolver as session component
It can not be stored in session because it depends on scope session
  and have mutable state
2020-09-09 12:38:35 +03:00
Dmitriy Novozhilov 29addd2a2b [FIR] Make InferenceComponents session component 2020-09-09 12:38:35 +03:00
Dmitriy Novozhilov 41b395b0aa [FIR] Extract mutable state from InferenceComponents 2020-09-09 12:38:35 +03:00
Dmitriy Novozhilov d70858edfa [FIR] Get rid of inference components in CheckerSink 2020-09-09 12:38:35 +03:00
Dmitriy Novozhilov 912676d868 [FIR] Introduce ResolutionContext and get rid of components in Candidate 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov c53ffca34f [FIR] Extract BodyResolveContext from FirAbstractBodyResolveTransformer 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov edb1273355 [FIR] Report ResolutionDiagnostics instead of applicability in resolve 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov a148db9d81 [FIR] Get rid of CandidateApplicability.SYNTHETIC_RESOLVED 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov 19707667fd [FIR] Cleanup detection that applicability is successful 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov 68f3d84e22 [FIR] Use CandidateApplicability from FE 1.0 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov cd557ad178 Change order of enum entries in CandidateApplicability 2020-09-09 12:38:34 +03:00
Dmitriy Novozhilov d1568c1ce6 Rename ResolutionCandidateApplicability to CandidateApplicability 2020-09-09 12:38:33 +03:00
Mikhail Glukhikh db2e3f219f [FIR] Keep bare type for type alias case 2020-09-09 12:16:09 +03:00
Alexander Udalov 3a5d0ab427 JVM IR: fix HashCode intrinsic for generics substituted with primitives
The problem here was that although the IR type of the expression was
primitive, the type of the actual expression in the bytecode generated
after type erasure was `Ljava/lang/Object;`, and we were trying to call
a non-existing method `Object.hashCode(Object)`.

 #KT-41669 Fixed
2020-09-08 23:37:00 +02:00
Alexander Udalov c46c80822c JVM IR: fix enclosing constructor for lambdas in inner classes
Before this change, we stored the enclosing constructor in a map in
JvmBackendContext before moving lambdas and local classes out of
initializer blocks. However, in case the lambda was declared in an inner
class, we stored a reference to the unlowered constructor of the inner
class, whose JVM signature is "()V" instead of the correct "(LOuter;)V".
Java reflection then threw exception if we tried to call
`getEnclosingConstructor()` on such class at runtime. Proguard finished
with errors for the same reason.

It turns out that we can just store the fact that the class has been
moved, and load the matching constructor in codegen, where everything is
already lowered and guaranteed to match with the signatures of the
actual generated declarations.

 #KT-41668 Fixed
2020-09-08 23:37:00 +02:00
Alexander Udalov 228e329d1f JVM IR: generate enclosing constructor only for lambdas in initializers
There was a typo in JvmLocalClassPopupLowering which allowed the
EnclosingMethod for lambdas and anonymous classes in initializers to
become any function in a class, in case when there was no primary
constructor in that class. E.g. in the added test, `getIrrelevantField`
was the EnclosingMethod of the lambda class before this change.
2020-09-08 23:37:00 +02:00
Ilya Kirillov 2ab68b3245 Wizard: move boolean setting description to the bottom 2020-09-09 00:20:58 +03:00
Ilya Kirillov ce00366c7f Wizard: fix when first selected template cannot be applied 2020-09-09 00:20:58 +03:00
Ilya Kirillov 3a6011fae9 Wizard: always generate android MPP tests
#KT-40940 fixed
2020-09-09 00:20:57 +03:00
Ilya Kirillov 553c525701 Wizard: fix Gradle buildscript formatting
#KT-37965 fixed
2020-09-09 00:20:57 +03:00