Dmitriy Novozhilov
bdf8e6f3a5
[FIR] Extend capacity of ArrayMapImpl until it fits required size
...
There are cases when we have some indices in TypeRegistry left from
previous compilations, so registering new service may increase index
not by one
So such situation is possible:
First compilation (jvm project): register 20 different jvm services in
session + one from compiler plugin (with index 21)
Second compilation (common project): register only 10 common services in
session + one from compiler plugin (with index 21)
*numbers are imaginary
And in this situation increasing `ArrayMapImpl.data` size only one time
may not cover required index
^KT-56685 Fixed
2023-02-16 10:25:20 +00:00
Dmitriy Novozhilov
81c1014391
Advance bootstrap to 1.9.0-dev-1777
2023-02-15 16:35:15 +00:00
Dmitriy Novozhilov
b474d12b0a
[Build] Exclude :repo:gradle-settings-conventions from JPS compilation
2023-02-15 09:15:45 +00:00
Dmitriy Novozhilov
8e3022452e
[FIR] Unify diagnostic message in FIR dump for syntax error between PSI and LT
2023-02-14 17:08:55 +00:00
Dmitriy Novozhilov
aef9b129d2
[FIR] Add regression tests for number of issues fixed in K2
...
List of issues:
KT-4113, KT-6822, KT-7389, KT-17817, KT-20223
KT-21463, KT-24503, KT-24737, KT-24779, KT-24901
KT-27261, KT-28668, KT-30497, KT-30756, KT-36958
KT-37365, KT-37490, KT-38288, KT-41038, KT-41721
KT-42136, KT-42169, KT-42449, KT-42715, KT-43553
KT-43603, KT-43846, KT-43936, KT-46288, KT-46301
KT-47373, KT-47484, KT-47490, KT-47495, KT-47750
KT-47815, KT-47870, KT-48975, KT-49024, KT-49045
KT-50134, KT-50160, KT-50550, KT-51045, KT-51143
KT-51796, KT-52262, KT-52424, KT-52860, KT-52934
KT-53086, KT-53494, KT-53671, KT-53752, KT-53819
KT-54478, KT-54518, KT-54931, KT-54990, KT-55138
KT-55379, KT-55555, KT-56243
2023-02-14 17:08:55 +00:00
Dmitriy Novozhilov
8ae5213155
[FIR] Add tests for KT-50386 and KT-50646
2023-02-14 17:08:54 +00:00
Dmitriy Novozhilov
092ebf4c11
[FIR] Add test for KT-49249
2023-02-14 17:08:54 +00:00
Dmitriy Novozhilov
019d7db737
[FIR] Add regression test for KT-44392
...
Also related to KT-56615
2023-02-14 17:08:53 +00:00
Dmitriy Novozhilov
197f19c627
[FIR] Add test for KT-43619
2023-02-14 17:08:53 +00:00
Dmitriy Novozhilov
f3fd4b3e01
[FIR] Add stack of all FIR elements to CheckerContext
...
^KT-56472 Fixed
2023-02-10 12:30:14 +00:00
Dmitriy Novozhilov
41192b022d
[FIR] Pass context to all relevant methods of FirDeclarationGenerationExtension
...
^KT-53470 Fixed
2023-02-10 12:30:14 +00:00
Dmitriy Novozhilov
ea73cde5fb
[Lombok] Make visibility of fields of @Value classes private by default (K2)
...
^KT-51092 Fixed
2023-02-10 12:30:13 +00:00
Dmitriy Novozhilov
ff4c5c1d03
[FIR] Pass symbol of containing class to FirStatusTransformerExtension instead of fir node
2023-02-10 12:30:13 +00:00
Dmitriy Novozhilov
67c504e6f0
[FIR] Add replaceStatus method for FirMemberDeclaration
2023-02-10 12:30:12 +00:00
Dmitriy Novozhilov
0550f0d394
[Lombok] Make visibility of fields of @Value classes private by default (K1)
...
^KT-51092
2023-02-10 12:30:12 +00:00
Dmitriy Novozhilov
a9248569a6
[FIR] Fix reporting of UNINITIALIZED_ENUM_ENTRY in init blocks
...
^KT-41126 Fixed
2023-02-10 12:30:12 +00:00
Dmitriy Novozhilov
393f880322
[FIR] Report error about ambiguous anonymous type approximation in type arguments of implicit return type of function
...
^KT-33917
^KT-56491 Fixed
2023-02-09 20:44:15 +00:00
Dmitriy Novozhilov
3c42521ce7
[FE 1.0] Report warning on leaking anonymous object type from private inline lambda
...
^KT-33917
^KT-56490 Fixed
2023-02-09 20:44:15 +00:00
Dmitriy Novozhilov
a197d1aadc
[FIR Plugin prototype] Add simple implementation of FirDeclarationsForMetadataProviderExtension
...
^KT-55885
2023-02-08 08:44:51 +00:00
Dmitriy Novozhilov
a967a242c7
[FIR] Allows use DSL for building FIR declarations from any FirExtension
2023-02-08 08:44:50 +00:00
Dmitriy Novozhilov
1248ee12d6
[FIR] Add ability to provide additional synthetic declarations to metadata from plugins
...
^KT-55885 Fixed
2023-02-08 08:44:49 +00:00
Dmitriy Novozhilov
8350226bad
[FIR] Collect constructors from scope instead of .declarations in metadata serialization
...
This is needed to save in metadata constructors, generated by plugins
with FirDeclarationGenerationExtension
2023-02-08 08:44:49 +00:00
Dmitriy Novozhilov
dfeabea0ab
[Test] Skip tests with IGNORE_BACKEND_K1 directive in android runner
2023-02-07 09:49:21 +00:00
Dmitriy Novozhilov
a0bdecd22b
[Test] Ignore Native codegen test with IGNORE_BACKEND_...: ANY directive
2023-02-07 09:49:20 +00:00
Dmitriy Novozhilov
ae7718514b
[Test] Don't run LightAnalysisModeTest in presence IGNORE_BACKEND_K1 directive
2023-02-07 09:49:20 +00:00
Dmitriy Novozhilov
075e025452
[FIR2IR] Properly generate GetObject expression for callable reference on companion object
...
^KT-55909 Fixed
2023-02-07 09:49:20 +00:00
Dmitriy Novozhilov
c25a5bc9c1
[FIR] Cleanup storing context for lambdas during body resolution
2023-02-06 10:08:37 +00:00
Dmitriy Novozhilov
791a7b1c31
[FIR] Extract function type kind for lambda in argument position
...
^KT-56381 Fixed
2023-02-06 10:08:37 +00:00
Dmitriy Novozhilov
e36d3c94a5
[FIR] Add containingFunctionSymbol property to FirValueParameterSymbol
2023-02-06 10:08:36 +00:00
Dmitriy Novozhilov
f479a56f5e
[FIR] Fix reporting of CANNOT_INFER_PARAMETER_TYPE on lambda parameters
...
^KT-56138 Fixed
2023-02-06 08:09:57 +00:00
Dmitriy Novozhilov
76d360d793
[FIR] Properly set source for inferred return type of function
2023-02-06 08:09:56 +00:00
Dmitriy Novozhilov
e9204521a9
[FIR] Properly create type ref for error type in various places
2023-02-06 08:09:56 +00:00
Dmitriy Novozhilov
ad3ae0ff69
[FIR] Add ability to specify that diagnostic collector should visit nodes with specific fake kind
2023-02-06 08:09:55 +00:00
Dmitriy Novozhilov
89c42e20c9
[FIR] Consistently use _function_ instead of _functional_ in names of classes and functions
2023-02-02 08:24:52 +00:00
Dmitriy Novozhilov
f268ab8858
[FIR plugin prototype] Implement Composable-like extension
2023-02-02 08:24:52 +00:00
Dmitriy Novozhilov
1c8587f82d
[FIR] Extract functional type kind from annotation on lambda literal
2023-02-02 08:24:51 +00:00
Dmitriy Novozhilov
b48751ec9c
[FIR] Add ability to extract functional type kind from annotation on functional literal type
2023-02-02 08:24:51 +00:00
Dmitriy Novozhilov
d1b797ed97
[FIR] Generify resolution and inference of arguments of functional types
2023-02-02 08:24:50 +00:00
Dmitriy Novozhilov
67aa80562d
[FE] Completely replace FunctionClassKind with FunctionalTypeKind
...
FunctionalTypeKind can be used in FE 1.0 too, so there is no need to
keep both classes. Also, removal of FunctionClassKind simplifies work
with FunctionalTypeKind in common code, like Analysis Api
2023-02-02 08:24:50 +00:00
Dmitriy Novozhilov
87a9103cc6
[FIR] Extract SyntheticFunctionsCache from builtins provider into separate one
...
This is needed because now set of available synthetic functional interfaces
depends on session, because each module can contain different plugins,
which provide different kinds of functional types
2023-02-02 08:24:50 +00:00
Dmitriy Novozhilov
e0c8f2354a
[FIR] Properly implement FirFunctionalTypeKindService
...
This implementation takes additional functional type kinds from compiler
plugins into account
2023-02-02 08:24:49 +00:00
Dmitriy Novozhilov
c86495dcae
[FIR] Introduce ConeFunctionalTypeKind as a replacement of FunctionClassKind
...
This is needed to provide an ability to extend different kinds of
functional types
Also, cleanup and rename utilities related to functional types to avoid
possible confusions
2023-02-02 08:24:49 +00:00
Dmitriy Novozhilov
c98c8d3682
[FIR] Introduce utility searching for classifier symbol by ClassId
...
There were places which created lookupTag from classId just to call
`lookupTag.toSymbol(session)`
2023-02-02 08:24:48 +00:00
Dmitriy Novozhilov
125b773205
[FIR] Introduce utility for creating ConeClassLikeLookupTagImpl from ClassId
...
`classId.toLookupTag()` looks much cleaner than `ConeClassLikeLookupTagImpl(classId)`
2023-02-02 08:24:48 +00:00
Dmitriy Novozhilov
6a343e7bff
[FIR] Resolve forks in constraint system after analysis of postponed lambda
...
When constraint system has forks in it usually we solve all of them before
starting full completion of corresponding call. But if some call with
forks was a last statement of postponed lambda, we will never call
completion for it with FULL mode. Instead of it we complete it in PARTIAL
mode and then just merge its constraint storage into storage of outer
call. So all forks from this inner call just remain unresolved inside
outer system without this fix
^KT-55966 Fixed
2023-02-01 15:02:02 +00:00
Dmitriy Novozhilov
a5f48e295e
[Build] Add configuration cache compatibility workaround for MetadataDependencyTransformationTask
2023-02-01 11:31:45 +00:00
Dmitriy Novozhilov
4e04a8bc69
Advance bootstrap to 1.9.0-dev-877
2023-02-01 11:31:44 +00:00
Dmitriy Novozhilov
a084bcbbb5
[FIR] Expand expected types before ILT approximation
...
^KT-56176 Fixed
2023-01-31 07:53:12 +00:00
Dmitriy Novozhilov
4941fcd10e
[FIR] Report PRIVATE_CLASS_MEMBER_FROM_INLINE on qualifiers of companions
...
^KT-56172 Fixed
^KT-55179
2023-01-31 07:53:12 +00:00
Dmitriy Novozhilov
522eec8c51
[FIR] Fix reporting PRIVATE_CLASS_MEMBER_FROM_INLINE on members of companion
...
^KT-56172
^KT-55179
2023-01-31 07:53:12 +00:00
Dmitriy Novozhilov
d856ae1f35
[FIR] Move common members in symbols up in the hierarchy
2023-01-31 07:53:11 +00:00
Dmitriy Novozhilov
a83caec94f
[FE 1.0] Implement deprecation PRIVATE_CLASS_MEMBER_FROM_INLINE_WARNING warning
...
^KT-55179
^KT-56171 Fixed
2023-01-31 07:53:11 +00:00
Dmitriy Novozhilov
d01a2c7271
[Test] Add test for KT-45814
...
^KT-45814 Can't reproduce
2023-01-31 07:53:10 +00:00
Dmitriy Novozhilov
a1a9a55e1a
[Test] Add test for KT-41952
...
^KT-41952 Obsolete
2023-01-31 07:53:09 +00:00
Dmitriy Novozhilov
4c96495eef
[FIR] Put new contract syntax under feauture flag
...
^KT-55171 Fixed
2023-01-31 07:53:09 +00:00
Dmitriy Novozhilov
2783aa13f5
[Backend] Restore isMostPreciseContravariantArgument method for binary compatibility
...
^KT-56033 Fixed
2023-01-31 07:53:08 +00:00
Dmitriy Novozhilov
36bb418049
[Parcelize] Add test for KT-47074
2023-01-31 07:53:08 +00:00
Dmitriy Novozhilov
993695a7d0
[Commonizer] Mute tests due to KT-56207
2023-01-30 09:30:00 +00:00
Dmitriy Novozhilov
71f8cfa193
[Maven] Fix running scripts from maven
2023-01-30 09:29:59 +00:00
Dmitriy Novozhilov
2988d671f7
[Test] Update CompileKotlinAgainstCustomBinariesTest
...
We have several tests which tests how compiler with LV = LATEST_STABLE
can consume binaries compiled with LV = LATEST_STABLE + 1 with
different CLI flags. For LV = 2.0 we have special rules for those flags,
so testdata was changed
After switching LV in repository to 2.0 this testdata should be rolled back
2023-01-30 09:29:58 +00:00
Dmitriy Novozhilov
e942e87feb
[JS CLI] Fix == on strings with equals call
2023-01-30 09:29:58 +00:00
Dmitriy Novozhilov
2fddb15539
[Test] Move some builder inference tests from codegen to diagnostics
...
^KT-56169
2023-01-30 09:29:58 +00:00
Dmitriy Novozhilov
88efa6bfb6
Update tests after switching to LV 1.9
2023-01-30 09:29:57 +00:00
Dmitriy Novozhilov
66544a4e00
Switch kotlin version to 1.9
...
with appropriate fixes in testdata, tests and other
places.
2023-01-30 09:29:55 +00:00
Dmitriy Novozhilov
8d728d4f53
Revert "[FE 1.0] Deprecate declaration of expect and actual in the same module"
...
This reverts commit b09561c3c3 .
It was decided to postpone this warning till 1.9
This is needed to provide proper IDE support
^KT-40904 Open
^KT-55177 Open
2023-01-17 18:02:50 +00:00
Dmitriy Novozhilov
259303ca50
[FIR] Fix loading of classId for nested enums in java annotation arguments
...
^KT-55887 Fixed
^KT-55976
2023-01-17 14:51:29 +00:00
Dmitriy Novozhilov
da0dd519d0
[Lombok] Fix substitution of java types in K2 implementation
...
^KT-54020 Fixed
2023-01-17 14:51:29 +00:00
Dmitriy Novozhilov
8bd3c9d019
[FIR] Don't transform nested classes during class update because of @JvmRecord annotation
...
^KT-55703 Fixed
2023-01-17 14:51:28 +00:00
Dmitriy Novozhilov
ad191eb179
[Test] Add test for KT-55703
2023-01-17 14:51:28 +00:00
Dmitriy Novozhilov
4363b0815c
[FIR] Add ability to specify if meta annotation itself should match metaAnnotated predicate
...
^KT-55843 Fixed
2023-01-17 14:51:28 +00:00
Dmitriy Novozhilov
e88a6af7a0
[JS Test] Include friend modules in list of all dependencies in compiler configuration
2023-01-17 14:51:27 +00:00
Dmitriy Novozhilov
83cbd322fd
[Test] Prohibit declaring dependency on the same module with different kinds in module structure
2023-01-17 14:51:27 +00:00
Dmitriy Novozhilov
c71b80823c
[Test] Cleanup code of ModuleStructureExtractorImpl.kt
2023-01-17 14:51:27 +00:00
Dmitriy Novozhilov
b09561c3c3
[FE 1.0] Deprecate declaration of expect and actual in the same module
...
^KT-40904 Fixed
^KT-55177 Fixed
2023-01-17 09:43:14 +00:00
Dmitriy Novozhilov
1984a1615e
[Serialization] Use new DSL for generating declarations
2023-01-12 17:45:41 +00:00
Dmitriy Novozhilov
5fedb2f72d
[Parcelize] Use new DSL for generating declarations
2023-01-12 17:45:41 +00:00
Dmitriy Novozhilov
3744878b6d
[FIR Plugin prototype] Use new DSL for generating declarations
2023-01-12 17:45:40 +00:00
Dmitriy Novozhilov
42db0b14f0
[FIR] Move all type construction utilities into one file
2023-01-12 17:45:40 +00:00
Dmitriy Novozhilov
ce8489a8a5
[FIR] Add ability to create accessor to declaration attribute on symbol
2023-01-12 17:45:40 +00:00
Dmitriy Novozhilov
185e57e601
[FIR] Introduce builders API for generating declarations in compiler plugins
...
^KT-53096 Fixed
2023-01-12 17:45:39 +00:00
Dmitriy Novozhilov
6783621eb0
[FIR] Change API for generating nested classes from plugins
...
`FirDeclarationGenerationExtension.generateClassLikeDeclaration` was split
into two functions: one for generating top level classes, and one for
nested classes. Such change reduces verbosity and error-proness of
this extension and also allows to smoothly run plugins on local classes
^KT-55248 Fixed
2023-01-12 17:45:39 +00:00
Dmitriy Novozhilov
faa96ec7c0
[AA LC] Don't create light methods if value class is present in signature
...
^KT-55788
Test `parameter_jvmInline.kt` is removed because now members with value
classes are not included in light classes and don't have PSI representation
2023-01-12 17:45:10 +00:00
Dmitriy Novozhilov
16b72d3e54
[AA] Unwrap type aliases in annotation arguments
...
^KT-55782 Fixed
2023-01-12 17:45:10 +00:00
Dmitriy Novozhilov
34af013913
[AA LC] Add test for modifiers of delegate fields
2023-01-12 17:45:09 +00:00
Dmitriy Novozhilov
95f5848e6c
[AA LC] Save unresolved qualifier name in arguments of annotations
2023-01-12 17:45:09 +00:00
Dmitriy Novozhilov
ed867af01d
[AA LC] Expand aliases of type arguments during conversion to KtType
...
^KT-55781
2023-01-12 17:45:09 +00:00
Dmitriy Novozhilov
36ae901b19
[AA LC] Map unresolved types according to aliased imports
2023-01-12 17:45:08 +00:00
Dmitriy Novozhilov
d5a76a1b3b
[AA LC] Keep original qualifier while translating error cone types to Psi types
2023-01-12 17:45:08 +00:00
Dmitriy Novozhilov
a3b9f15ecc
[AA LC] Create proper Psi types for types with errors inside
2023-01-12 17:45:08 +00:00
Dmitriy Novozhilov
3a536bb32f
[AA LC] Approximate anonymous type to single supertype if possible
...
^KT-55780 Fixed
^KT-55778 Fixed
2023-01-12 17:45:07 +00:00
Dmitriy Novozhilov
935b4f2feb
[AA LC] Add workaround for jvmDefaults compatibility
2023-01-12 17:45:07 +00:00
Dmitriy Novozhilov
d7cd2b72b0
[AA LC] Add test for strange JVM identifiers
2023-01-12 17:45:07 +00:00
Dmitriy Novozhilov
e7148daad2
[FIR] Properly substitute arguments of error types
2023-01-12 17:45:06 +00:00
Dmitriy Novozhilov
edbf199f84
[FIR] Remove redundant lookupTag from AbstractConeSubstitutor.substituteArgument
2023-01-12 17:45:06 +00:00
Dmitriy Novozhilov
bd26c29229
[FIR] Resolve arguments of error types during type resolution
2023-01-12 17:45:06 +00:00
Dmitriy Novozhilov
bc93556dbb
[FIR] Allow FirElementSerializer.packagePartProto accept multiple files
...
This is needed for cases when there are multiple files with same name
and `@JvmMultifileClass` annotation
2023-01-12 17:45:05 +00:00
Dmitriy Novozhilov
d0183f78ff
Advance bootstrap to 1.8.20-dev-5197
2023-01-05 15:21:31 +02:00
Dmitriy Novozhilov
4f3add8f7a
[FIR] Fix resolution of plugin annotations if only meta annotations are registered
2023-01-04 11:02:01 +00:00
Dmitriy Novozhilov
7cbe13dee9
[JS] Update testdata of ApiTest.test(Ir)Stdlib
...
Most likely it caused by 17e9a6a781
2022-12-21 22:30:08 +00:00
Dmitriy Novozhilov
bab91ce7b2
Advance bootstrap to 1.8.20-dev-4608
2022-12-21 22:30:08 +00:00