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