Denis.Zharkov
52eb535a7d
FIR: Use platform specific overridability rules for platform members
...
^KT-54570 Fixed
2022-10-31 14:28:55 +00:00
Nikolay Lunyak
dd861515ad
[FIR] KT-52157: Fix missing type parameter annotations
2022-10-20 13:08:11 +00:00
Ivan Kochurkin
fe670d98a9
[FIR] Rename FirSessionFactory to FirJvmSessionFactory
2022-10-13 18:11:48 +00:00
Ivan Kochurkin
40a01180ff
[FIR] Move createSessionWithDependencies and createEmptySession into FirSessionFactoryHelper
2022-10-13 18:11:48 +00:00
Ivan Kochurkin
281c79e21e
[FIR] Inline createModuleDataForBuiltins method since it doesn't look useful
2022-10-13 18:11:48 +00:00
Ivan Kochurkin
4d89eddbe8
[FIR] Don't create FirDependenciesSymbolProvider without need
2022-10-13 18:11:47 +00:00
Dmitriy Novozhilov
6623456d2a
[FIR] Properly support @JvmRecord
...
^KT-53867 Fixed
2022-10-03 15:48:17 +03:00
Mikhail Glukhikh
036f9affd8
K2: link via signatures if -Xlink-via-signatures is set
...
Related to KT-53505
2022-09-14 10:15:22 +00:00
Nikita Bobko
8f79e833a8
Drop all redundant kotlin-reflect, kotlin-reflect-api dependencies
...
Review: https://jetbrains.team/p/kt/reviews/6753
All redundant I managed to find, of course.
Why: I'm going to process all reflect dependencies in the next commits.
Cleanup reflect dependency before processing.
They are redundant because:
1. if `compileOnly` then compilation didn't break after dropping the
dependency
2. if `test*` then tests didn't break after dropping the dependency.
3. `analysis/analysis-api-fir/analysis-api-fir-generator/build.gradle.kts`
`compiler/fir/checkers/checkers-component-generator/build.gradle.kts`
Drop `implementation(project(":kotlin-reflect-api"))` because the
module already depends on
`implementation(project(":kotlin-reflect"))`
4. `compiler/daemon/daemon-client/build.gradle.kts`. Drop `runtimeOnly`
because after dropping `compileOnly` compilation didn't break (so
`runtimeOnly` looks suspicious). Less safe than 1-3
2022-08-22 15:42:57 +02:00
Dmitriy Novozhilov
bb38690273
[FIR] Introduce FirAssignExpressionAltererExtension
...
This extension can be used to override resolution of assign statements
with custom statement
2022-08-19 07:44:09 +00:00
Vsevolod Tolstopyatov
2fcef7af89
[FIR] Fix IrInlineBodiesHandler
...
Validate that inline function actually is present in at least on of the
modules, not in all of them. That enables support of MODULE directive
in boxInline tests for FIR.
Also, hide a few minor style fixes in this commit
2022-08-12 09:35:26 +00:00
Vsevolod Tolstopyatov
8a181cf2bd
[FIR] Create stub language settings for FIR-related test to keep relying on it
...
#KT-48872
2022-08-12 09:35:23 +00:00
Ilya Kirillov
0748f28efe
[FIR] rename ensureResolve -> lazyResolveToPhase as it better describes function semantics
2022-08-10 22:49:18 +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
Mikhail Glukhikh
9add6f3d55
K2: add more accurate & more automatic control of diagnostic suppression
...
#KT-51363 Fixed
2022-07-22 11:35:26 +00:00
Mikhail Glukhikh
7bbd8d3b95
FIR2IR entry points: don't create JvmDescriptorMangler if not needed
2022-07-13 13:11:49 +00:00
Mikhail Glukhikh
45eb9238b3
Fir2IrClassifierStorage: don't calculate signature in registerClass
2022-07-06 10:02:09 +00:00
Mikhail Glukhikh
730a5d1a88
FIR: introduce Java vs Kotlin class conflicts checker #KT-44441 Fixed
2022-07-04 13:28:58 +00:00
Dmitriy Novozhilov
22dae9bff4
[FIR] Fix registration of multiple compiler plugins
2022-06-29 11:59:59 +00:00
Dmitriy Novozhilov
8b42638afa
[Plugins] Introduce new API for registering compiler plugins
...
Original `ComponentRegistrar` exposes Project to its registration method,
so plugins should manually register extensions to it. To prepare for
possible unbound compiler from Project API in future new `K2ComponentRegistrar`
introduced which provides registration method without Project at all
2022-06-29 11:59:58 +00:00
Dmitriy Novozhilov
e54c6eeafc
[FIR] Introduce extension for custom SAM conversions
2022-06-27 08:11:31 +00:00
Mikhael Bogdanov
41d6f0dca4
Remove ir.tree.impl from build
2022-06-20 11:42:52 +00:00
Dmitriy Novozhilov
b948eaef4b
[FIR] Add ability to register session components from FIR plugins
2022-06-07 14:12:17 +00:00
Dmitriy Novozhilov
3ee0d13119
[FIR] Add additional DSL methods to FirExtensionRegistrar
2022-06-07 14:12:12 +00:00
Nikolay Lunyak
c2cecb2818
[FIR JS] Add the dynamic type unsupported checker
2022-06-02 13:47:33 +00:00
Nikolay Lunyak
ac1fb07102
[FIR JS] Add checkers.js
2022-06-02 13:47:28 +00:00
Mikhail Glukhikh
eaa77b5af6
[FIR JS] Generate dynamic FIRs via DynamicScope
2022-06-02 13:47:26 +00:00
Nikolay Lunyak
9a9beef25b
[FIR JS] Prepare the infrastructure for FIR JS tests
2022-06-02 13:47:24 +00:00
Ivan Kochurkin
1b0af2cb0e
[FIR] Make the lowest priority for OptionalAnnotationClassesProvider
2022-05-29 23:41:26 +03:00
Georgy Bronnikov
ffe1615e9c
Fir: simplify IrBuiltInsOverFir
2022-05-19 12:02:42 +02:00
Georgy Bronnikov
3c3c1be543
Fir2Ir: introduce Fir2IrExtensions
...
This allows us to remove DeclarationStubGenerator from Fir2IrConverter,
thus reducing dependency on descriptor-based code.
2022-05-19 12:02:41 +02:00
Aleksei.Cherepanov
3d8f140d6b
[JPS] Fix incremental build after changing Java enum used in Kotlin when
...
EnumWhenTracker implemented for tracking changed java enum class items, that used in kotlin when expression.
#KT-47824 Fixed
2022-04-19 18:39:41 +00:00
Ivan Kochurkin
3b8183a736
[FIR] Support of importing optional annotation classes (JS/Native), ^KT-51757 Fixed
2022-04-18 15:36:21 +00:00
Ivan Kochurkin
46dd6520af
Fix typo
2022-04-05 15:50:48 +00:00
Dmitriy Novozhilov
caffe36181
[FIR] Move utilities for matching overrides into separate session component
2022-04-04 15:23:55 +00:00
Ilya Chernikov
03cbfea737
FIR LT: Introduce source file abstraction, carry it from parsing to IR
...
along with source lines mapping, allows to "emulate" usage of the
PSI files which allows to extract source file and line mapping info
on every stage from source element.
It makes sense to use this mapping for the error reporting too.
2022-03-30 08:34:30 +00:00
Ilya Chernikov
018782f0c7
FIR CLI: use VFS for LT files loading
...
may improve performance in some cases and is consistent with handling
of PSI files
2022-03-30 08:33:43 +00:00
Ilya Chernikov
a08e70ae5c
FIR CLI: fix java sources search scope usage
2022-03-30 08:33:27 +00:00
Ilya Chernikov
973273c6c6
FIR CLI: count lines/files and report events to perfman
2022-03-30 08:33:11 +00:00
Ilya Chernikov
9e32188938
FIR LT: add syntax error reporting to LT2Fir
...
use it in the new pipeline
2022-03-30 08:31:56 +00:00
Ilya Chernikov
2aba465494
FIR IC: provide file sources to lookup where possible
...
because detecting file source by element source is possible for LT
only in some limited cases.
2022-03-30 08:31:33 +00:00
Ilya Chernikov
275135a1b2
FIR: extend cli pipeline with incremental compilation logic
...
use it in the IncrementalCompilationRunner
2022-03-30 08:31:10 +00:00
Ilya Chernikov
cf22400701
Introduce LT file abstraction in tests parallel to KtFile
...
allows to create a valid LT-based file with synthetic path important
for dumps comparisons in tests
2022-03-30 08:30:09 +00:00
Ilya Chernikov
4b92d50775
FIR: Implement and use component to map lighttree-based sources to files
2022-03-30 08:29:54 +00:00
Roman Golyshev
f700b87f6c
FIR: Prevent registering compiler plugins twice
2022-02-25 23:08:25 +03:00
Roman Golyshev
765af5f18a
FIR IDE: Register plugins-related session components in IDE session
...
Move registering CLI-specific plugin-related components to
`registerCliCompilerOnlyComponents`
2022-02-25 23:08:25 +03:00
Dmitriy Novozhilov
83179f4482
[FIR] Add extension for injecting new implicit receivers after resolution of function call
2022-02-18 17:52:34 +03:00
Dmitriy Novozhilov
44bfb6fde8
[FIR] Don't register FirJavaElementFinder for common session
2022-02-18 17:44:40 +03:00