Commit Graph

40497 Commits

Author SHA1 Message Date
Steven Schäfer 6f0ff6aeb0 IR: Fix scope transparency in ReturnableBlockLowering
An IrReturnableBlock introduces a new variable scope and shouldn't be
replaced with a transparent IrComposite block.
2022-07-29 01:06:44 +02:00
Ilmir Usmanov b93c000250 Make suspend fun, where suspend is a function error in 1.9
instead of 1.8.

 #KT-49264
2022-07-28 21:03:07 +02:00
Igor Chevdar 92109a6bef [IR][inliner] Reworked local classes in inline lambdas
#KT-52795 Fixed
2022-07-28 16:01:18 +00:00
Igor Chevdar 8981eb85de [box-tests] Added a couple of reproducers for KT-52795 2022-07-28 16:01:17 +00:00
Alexander Korepanov caa1570e25 [JS IR] Fix clashes between bridge and delegated function call
The patch fixes the js function signature rules to avoid clashes
 between bridge and delegated call. Use overridden symbols dfs of
 JsName annotation in order to get the correct bridge name.

^KT-52968 Fixed
2022-07-28 14:41:47 +00:00
Alexander Korepanov 6525f7a7ac [JS IR] Fix a IC dependency building for class methods.
The patch fixes lost IC dependencies for inherited class or interface methods.
 Especially between a fake override function and its implementation.
 Since IrSymbolDeserializer doesn't provide all class methods,
 they are collected from the class definitions.

^KT-53063 Fixed
2022-07-28 12:39:39 +00:00
Victor Petukhov a61648651b [FE 1.0] Use original receivers for NI while DSL scope violation checking
Original receivers are already use in the near place

^KT-46969 Fixed
2022-07-28 08:51:42 +00:00
Ilya Kirillov d9c4fda521 [Analysis API FIR] implement reference resolve inside KDoc
^KTIJ-22324 fixed
2022-07-28 01:37:53 +02:00
Mikhail Glukhikh 91f3edc6a6 K1: add protection against exceptions possible in IDE partial resolve
IDE partial resolve allows to drop some statements from resolve,
in particular it can drop some lambda. However, this can lead to the
situation when we have no descriptor for lambda or to incorrect
type checks for its containing block. This commit protects about
this situation
2022-07-27 16:48:38 +00:00
Mikhail Glukhikh 3e58c54da9 Add docs to CandidateApplicability, remove DSL_SCOPE_VIOLATION 2022-07-27 15:29:48 +00:00
Mikhail Glukhikh d0c518013a Document&use CandidateApplicability.shouldStopResolve/isSuccess properly 2022-07-27 15:29:47 +00:00
Mikhail Glukhikh 010d5b76e5 Temporary fix for K2/JS tests 2022-07-27 15:29:46 +00:00
Mikhail Glukhikh 220a8e47f4 K2: de-prioritize invoke on dynamic receiver 2022-07-27 15:29:45 +00:00
Mikhail Glukhikh 766d873271 FIR2IR: fix case with extension called on dynamic 2022-07-27 15:29:45 +00:00
Mikhail Glukhikh 0611f3b8e7 CandidateApplicability: add K1/K2 prefixes when applicable 2022-07-27 15:29:44 +00:00
Mikhail Glukhikh 8e9e8302f7 CandidateApplicability: merge INAPPLICABLE_MODIFIER into CONVENTION_ERROR 2022-07-27 15:29:43 +00:00
Mikhail Glukhikh 577b9686c1 K2: fix using compatibility resolve for SAM constructors 2022-07-27 15:29:42 +00:00
Mikhail Glukhikh 32a73968de Stop tower resolve in K2 in more similar manner with K1 2022-07-27 15:29:41 +00:00
Ilya Gorbunov 1addc23b23 Add range iteration tests for rangeUntil
#KT-52932
2022-07-26 23:52:10 +00:00
Steven Schäfer d2f6acfd34 FIR: Add resolved type refs to the annotation container context for diagnostics 2022-07-26 09:34:09 +00:00
Ivan Kochurkin 80450042c7 [FIR] Ignore KtFakeSourceElementKind in FirRecursiveProblemChecker 2022-07-25 23:30:10 +02:00
Ivan Kochurkin 0af43757e3 [FIR] Implement FirNativeIdentifierChecker
* INVALID_CHARACTERS_NATIVE
2022-07-25 23:30:10 +02:00
Ivan Kochurkin a44d5bf52f [FIR] Implement FirNativeThreadLocalChecker
* INAPPLICABLE_THREAD_LOCAL
* INAPPLICABLE_THREAD_LOCAL_TOP_LEVEL
2022-07-25 23:30:10 +02:00
Ivan Kochurkin 987137cf76 [FIR] Implement FirNativeSharedImmutableChecker
* INAPPLICABLE_SHARED_IMMUTABLE_PROPERTY
* INAPPLICABLE_SHARED_IMMUTABLE_TOP_LEVEL
2022-07-25 23:30:10 +02:00
Ivan Kochurkin 1bb158e45c [FIR] Add SourceSet.generatedDir() and use it in build.gradle.kts 2022-07-25 23:30:10 +02:00
Ivan Kochurkin 9f9cef392f [FIR] Minor fixes of FirJvmDefaultChecker 2022-07-25 23:30:09 +02:00
Ivan Kochurkin ad1fb07a95 [FIR] Implement FirNativeThrowsChecker 2022-07-25 23:30:09 +02:00
Ivan Kochurkin c47148b8fb [FIR] Remove FirJsSyntheticNamesProvider and FirNativeSyntheticNamesProvider.kt 2022-07-25 23:30:09 +02:00
Ivan Kochurkin 502349c594 [FIR] Implement Native test infrastructure, add FirNativeSessionFactory 2022-07-25 23:30:09 +02:00
Ivan Kochurkin 2f56b29b3f [FIR] Extract FirSessionConfigurator and IncrementalCompilationContext to separated classes
With FirSessionFactory and FirJsSessionFactory
2022-07-25 23:30:09 +02:00
Ivan Kochurkin 94527e24e8 [FIR] Commonize code for creating common, JVM and JS session
Extract FirAbstractSessionFactory
2022-07-25 23:30:09 +02:00
Denis.Zharkov 7d6e133c0d Refine warning messages for KT-36770
^KT-36770 Fixed
2022-07-25 16:08:49 +00:00
Denis.Zharkov 7f7e5c5975 FIR: Fix candidate receivers orders when choosing a context receiver
^KT-53257 Fixed
2022-07-25 15:11:29 +00:00
Ivan Kylchik b9e2173288 Rewrite interpretation of enum entries to avoid IR data corruption
There was a bug here if during enum creation there will be an
exception. Then function `cleanEnumSuperCall` will never be called
and ir will be corrupted.
2022-07-23 18:32:53 +00:00
Ivan Kylchik 008a5f02e5 Make enum entries to be interpreted in right order
#KT-53727 Fixed
2022-07-23 18:32:52 +00:00
Ilya Kirillov 76f1744868 [Analysis API FIR] add more info to some exceptions 2022-07-23 19:54:47 +02:00
Rick Clephas 5a5e6ad8cd [K/N] Add ObjCName annotation (#4815) 2022-07-23 18:58:06 +02:00
Ilya Kirillov edf9e05b13 Distinguish cause attachments from exception attachments in KotlinExceptionWithAttachments 2022-07-23 17:08:22 +02:00
Ilya Kirillov 827c262f68 [Analysis API FIR, LL FIR] use exceptionWithAttachment to not leak user data 2022-07-23 17:08:22 +02:00
Alexander Udalov 584b70719e JVM IR: disable SAM conversion in case type has 'in' projection
... and the corresponding type parameter has a non-trivial (i.e.
non-`Any?`) upper bound.

The best solution here would be to get rid of
`removeExternalProjections` completely, and just use the type of the
argument at the call site, but see KT-52428.

 #KT-51868 Fixed
2022-07-23 01:10:53 +02:00
Denis.Zharkov a3b33901d8 Add issue link to deprecation warning message for KT-36770
^KT-36770 Fixed
2022-07-22 16:42:13 +00:00
Mikhail Glukhikh 3ae75a5094 FIR2IR: generate annotations on fake override parameters #KT-53208 Fixed 2022-07-22 16:39:52 +00:00
Mikhail Glukhikh 5445f4043a K2: expand types during smartcasting to prevent redundant intersections
#KT-53184 Fixed
2022-07-22 16:39:52 +00:00
Mikhail Glukhikh bc396b9765 K2: don't report RETURN_TYPE_MISMATCH on last statement returns
#KT-53198 Fixed
2022-07-22 16:39:51 +00:00
Alexander Korepanov 0982872959 [JS IR] Fix clash between generic extension overloads
Type parameter constraints are used for calculating JS signature hash.

^KT-51151 Fixed
2022-07-22 16:14:51 +00:00
Mikhail Glukhikh 0bd06b4095 K1: unify code around resolveCallWithGivenDescriptors 2022-07-22 16:03:54 +00:00
Mikhail Glukhikh ec055eb418 K1: cleanup new inference constructor resolve in CallResolverUtil 2022-07-22 16:03:54 +00:00
Mikhail Glukhikh e20efc1398 K1: don't report UNRESOLVED_WITH_TARGET on hidden setters 2022-07-22 16:03:53 +00:00
Victor Petukhov 00d1e46c5a [FE 1.0] Don't throw exception during substitution of accessors, just return original 2022-07-22 16:03:53 +00:00
Victor Petukhov db54d18c72 [FE 1.0] Add fallback for extracting when call 2022-07-22 16:03:52 +00:00