Commit Graph

102463 Commits

Author SHA1 Message Date
Yahor Berdnikau 82fa02f71e [Gradle] Remove unused resources in Gradle integration tests 2023-07-06 07:39:18 +00:00
Yan Zhulanow 8f798119cc [FIR] Build raw FIR for code fragments 2023-07-06 15:58:30 +09:00
Yan Zhulanow b7921a401b [FIR] Make 'resolveIfJavaType()' accessible from LL API
This is needed for providing types for '_DebugLabel' variables in
code fragments. Originally, there come a JVM type descriptor, so there
it's converted to a FirResolvedTypeRef reference through FirJavaTypeRef.
2023-07-06 15:58:30 +09:00
Yan Zhulanow 8ffb329741 [FIR] Add 'buildCodeFragmentCopy()' and 'replaceBlock()' for IDE analysis 2023-07-06 15:58:30 +09:00
Yan Zhulanow 0fe527bb65 [FIR] Pass context data flow on code fragment analysis 2023-07-06 15:58:30 +09:00
Yan Zhulanow 7e075ec64a [FIR] Pass the whole body context to the resolve context collector
Collector for the 'FirCodeFragment' analysis needs to capture also
data-flow information.
2023-07-06 15:58:30 +09:00
Yan Zhulanow b43fcae708 [FIR] Collect logical expression context for smart cast preservation 2023-07-06 15:58:29 +09:00
Yan Zhulanow 92198ee016 [FIR] Use both context and code fragment imports 2023-07-06 15:58:29 +09:00
Vasily Levchenko 33abe75a74 [FIR] Add FirCodeFragment 2023-07-06 15:58:29 +09:00
Timofey Solonin 2760a25e2c [MPP] Assert that the coroutine block actually runs
^KT-58712
2023-07-06 05:51:21 +00:00
Dmitriy Novozhilov 3ac009ea38 Advance bootstrap to 1.9.20-dev-5788 2023-07-05 20:24:06 +00:00
Ilya Chernikov b1b1eab35b K2 Scripting: fix testdata for scripts diagnostics tests 2023-07-05 19:46:04 +00:00
Ilya Chernikov 5e3f7184d1 IR Scripting: fix capturing of the script parameter in a fun 2023-07-05 19:46:04 +00:00
Ilya Chernikov bf3a6f7678 K2 Scripting: support script top-level destructuring declarations 2023-07-05 19:46:04 +00:00
Ilya Chernikov 02e2438d37 K2 Scripting: fix script this receiver handling in IR
also fix accessor lowering
2023-07-05 19:46:04 +00:00
Ilya Chernikov 07df03dbec K2 Scripting: fix capturing in scripts created from Fir 2023-07-05 19:46:04 +00:00
Ilya Chernikov 00211a5fc9 K2 Scripting: turn on implicit body resolve for scripts 2023-07-05 19:46:04 +00:00
Ilya Chernikov 1a735b0842 K2 scripting: support script-level typealiases 2023-07-05 19:46:04 +00:00
Ilya Chernikov 70d2fcd9c4 K2 Scripting: deprecate top level script inner classes
no LT support yet
2023-07-05 19:46:03 +00:00
Ilya Chernikov 7484ccb9ee K2 Scripting: allow script top level inline functions 2023-07-05 19:46:03 +00:00
Ilya Chernikov 86b3e65d19 K2 Scripting: enable script processing in diagnostics collector
and add scripts to containing decls in checker context te be able to
check for containing script in checkers
2023-07-05 19:46:03 +00:00
Ilya Chernikov f79f715590 Fir2Ir: remove error reporting on no receiver
this error is not valid for scripts, where some receivers are set
later in the lowering, and it looks like in other cases this problem
will be detected later in lowering or codegen anyway.
2023-07-05 19:46:03 +00:00
Ilya Chernikov 7866c63e49 Fir2Ir: add fake overrides binding for script top level classes 2023-07-05 19:46:03 +00:00
Ilya Chernikov 9adf24950a Fir2Ir scripts: fix declarations registration and processing 2023-07-05 19:46:03 +00:00
Ilya Chernikov 5824b9c59c K2 Scripting: add Fir script codegen tests
27 failing tests are muted
2023-07-05 19:46:03 +00:00
Dmitrii Gridin 83d0dbe436 [LL FIR] FileStructure: reanalyze declarations without name as well
^KT-60132 Fixed
^KT-59687
2023-07-05 20:29:01 +02:00
Dmitrii Gridin 9e88da2e66 [LL FIR] FileStructure: add tests for re-analyzable elements without names
^KT-60132
^KT-59687
2023-07-05 20:29:01 +02:00
Dmitrii Gridin e354b2a900 [LL FIR] rewrote in-block modifications logic
Now we will invalidate bodies for FIR declarations
immediately after in-block modifications in these declarations
We assume that such in-block modifications can happen
only under write action,
so it should be safe to make changes for FirFile

^KT-59687 Fixed
^KT-59199 Fixed
^KTIJ-26066 Fixed
2023-07-05 20:29:00 +02:00
Dmitrii Gridin a50efd7aa2 [LL FIR] treat changes inside contract description as OOBM
Because contracts affects resolution

^KT-59687
^KTIJ-26085 Fixed
^KTIJ-26066
2023-07-05 20:28:28 +02:00
Dmitrii Gridin 99e2a14b9c [LL FIR] do not reanalyze non-top level properties with initializer
Treat changes inside non-top level property initializer as OOB
It is OOB because CFG for a class depends on a property initializer,
so we must rebuild CFG for the class

Also, this commit makes the API more understandable

^KT-59687
2023-07-05 20:28:28 +02:00
Dmitrii Gridin 8137bee09c [LL FIR] drop empty files 2023-07-05 20:28:28 +02:00
Pavel Punegov 7cb0875bd8 [K/N][test] Add ExperimentalNativeApi opt-in in the samples 2023-07-05 18:20:35 +00:00
Ivan Kochurkin 7b3f1c73ca [FIR] Add @Supress("unused") to generated files 2023-07-05 17:53:52 +00:00
Ivan Kochurkin ee44bddaf9 [FIR] Add @Supress("unused") to debug and plugin-related declarations 2023-07-05 17:53:52 +00:00
Ivan Kochurkin 43b76f3c24 [FIR] Remove unused declarations 2023-07-05 17:53:51 +00:00
Yan Zhulanow 6156609617 [PSI] Increment modification stamp on adding imports to 'KtCodeFragment'
LL API incremental analysis depends on modification stamps for files and
declarations. Adding an import directive would modify a modification
stamp of an ordinary KtFile. The same should apply to a KtCodeFragment.
2023-07-05 16:55:38 +00:00
Dmitriy Novozhilov 1ca1616528 [FIR] Check for extension and context receiver in isMethodOfAny utility 2023-07-05 14:57:55 +00:00
Dmitriy Novozhilov 210ad770aa [FIR] Remove duplicated logic for isMethodOfAny utility 2023-07-05 14:57:55 +00:00
Dmitriy Novozhilov 4da51ee997 [FIR2IR] Use FIR symbol instead of IR during conversion of function calls 2023-07-05 14:57:55 +00:00
Dmitriy Novozhilov 8083a50017 [FIR2IR] Use FIR symbol instead of IR during conversion of receivers for calls 2023-07-05 14:57:55 +00:00
Dmitriy Novozhilov e66fac3d5f [FIR] Don't set dispatch receiver type for local functions 2023-07-05 14:57:55 +00:00
Dmitriy Novozhilov 6bb7fc05df [IR] Split implementation of DataClassMembersGenerator to IR based and descriptor based 2023-07-05 14:57:55 +00:00
Egor Kulikov 27f4b53570 [FIR] Do not expect builtin imports to be always resolved
Merge-request: KT-MR-10886
Merged-by: Egor Kulikov <Egor.Kulikov@jetbrains.com>
2023-07-05 14:02:50 +00:00
Mikhail Glukhikh 6bed02fed3 K2: fix an exception during function resolve #KT-59649 Fixed 2023-07-05 13:52:45 +00:00
Ivan Kylchik d557bcaba4 [IR] Forbid unconditional interpretation of IrGetObjectValue
Earlier we always allowed to interpret `IrGetObjectValue` because
this value is used in const val getter. But now we do a special
check for such getter avoiding visit of `IrGetObjectValue` node.

#KT-59775 Fixed
2023-07-05 13:33:41 +00:00
Kirill Rakhman 04f16d75d2 [K2 MPP] Fix hasStableParameterNames check for fake overrides
This fixes a false positive error regarding different
parameter names in expect actual matching with fake overrides.

#KT-59737 Fixed
2023-07-05 13:30:01 +00:00
aleksandrina-streltsova 116de97f54 [AA] Add synthetic properties scopes to scope context for position 2023-07-05 12:36:54 +00:00
Timofey Solonin 5d8e23e971 [MPP] Don't enable commonization in subprojects of a project where
CocoaPods plugin was applied

^KT-58712
2023-07-05 11:21:47 +00:00
Vladimir Dolzhenko 3c8c20f8d2 Do not do unnecessary writeBooleanAttribute
Merge-request: KT-MR-10945
Merged-by: Vladimir Dolzhenko <Vladimir.Dolzhenko@jetbrains.com>
2023-07-05 09:27:04 +00:00
Kirill Rakhman 988dbfc5c8 [FIR] Extract common helper for checking of (expect) default value 2023-07-05 08:51:01 +00:00