Alexander Udalov
8294aed40c
IR: add descriptor to "unbound symbols not allowed" message
...
This will help in diagnosing problems such as KT-45236.
2021-03-09 21:07:53 +01:00
Alexander Udalov
e3dc112c5f
Add original KotlinType to rendered IrErrorType
...
Also improve an error message in `IrType.erasedUpperBound`, which seems
like a frequent first place where the JVM IR backend crashes in case an
error type has made it past psi2ir.
This will help in diagnosing problems such as KT-45016.
2021-03-09 21:07:53 +01:00
Alexander Udalov
cd9463ae8d
Minor, add toString for GeneratedFile
2021-03-09 21:07:53 +01:00
Alexander Udalov
bdaeaca5ae
Psi2ir: do not generate default accessor body for expect properties
...
Because generateDefaultGetterBody/generateDefaultSetterBody reference
the property's backing field, which in case of extension properties
leads to an error "Unbound symbols not allowed" because extension
property cannot have a backing field.
In some way, this check is similar to the `isExpect` check in
`generatePrimaryConstructor`.
2021-03-09 20:51:02 +01:00
Alexander Udalov
5fc9f3bc17
Minor, add box test for unreachable uninitialized property
...
#KT-44496
2021-03-09 20:50:39 +01:00
Alexander Udalov
247efb220c
Do not require backing fields for extension properties
...
This has no effect on correct code because extension properties cannot
have a backing field anyway and that is checked separately. But this
function is used in psi2ir to determine whether or not to create a
backing field for a property, and in case the code where the property is
declared is unreachable like in KT-44496 and has no explicit getter or
setter, it would previously return true for extension properties, which
on JVM would result in an actual field in the class file, which made no
sense.
After this change, the compiler will actually crash with an exception in
the IR validaton step because the symbol for the field is unbound. That
is a bit better than proceeding to generate potentially invalid
bytecode, but of course a proper fix would be to report an error in the
frontend.
#KT-44496
2021-03-09 20:50:39 +01:00
Ilya Kirillov
81baf4fae5
FIR IDE: collect diagnostics under read lock
2021-03-09 18:30:35 +01:00
Ilya Kirillov
770468c78e
FIR IDE: refactor designated lazy transformers
2021-03-09 18:30:35 +01:00
Pavel Kirpichenkov
4bc019736b
[MPP] Add KotlinSDK to the set of predefined test SDKs
...
^KT-45145 Fixed
2021-03-09 20:05:32 +03:00
Ilya Kirillov
d8a3dacdc5
FIR: return back supertypeRefs list recreation
2021-03-09 15:41:42 +01:00
Pavel Punegov
efa43052db
Fix Kotlin/Native dist path setting in Klib tests
2021-03-09 14:38:59 +00:00
Vladimir Ivanov
fd02802028
[Native] Export KDoc into generated native header
2021-03-09 16:50:23 +03:00
Jinseong Jeon
6427117a35
FIR CFG: correct edge label from a node that returns Nothing
...
If it's not within a try/catch/finally, that should be an uncaught
exception path.
^KT-45327 Fixed
2021-03-09 14:44:42 +03:00
Jinseong Jeon
d8fb54c6bd
Reproduce KT-45327: false positive MUST_INITIALIZED_OR_BE_ABSTRACT after conditional exitProcess
2021-03-09 14:44:42 +03:00
Alexander Udalov
628d75c7cd
JVM: fix EnclosingMethod information for SAMs in inline lambdas
...
Pass parentContext to SamWrapperCodegen from the outside instead of
using the one from parentCodegen. The difference is that in case of an
inline lambda, we're creating an InlineLambdaContext whose parent is a
ClosureContext, but the codegen for that lambda has that latter
ClosureContext as its context. So the getNonInlineOuterContext call in
SamWrapperCodegen.generateInnerClassInformation wasn't able to identify
that this is a context of a lambda that needs to be skipped, and
generated it as EnclosingMethod, which caused Java reflection to fail
because once that lambda was inlined, it was removed and thus didn't
make it to runtime.
#KT-44827 Fixed
2021-03-09 11:43:11 +01:00
Nikolay Krasko
9e5bf7e05c
Increase amount of memory for Gradle Importing Tests
...
We have OOM in recent tests executions
2021-03-09 13:32:27 +03:00
Dmitriy Dolovov
1a3515dbab
[Commonizer] Use Flag.Class.IS_VALUE instead of Flag.Class.IS_INLINE
...
Also: Rename CirClass.isInline to CirClass.isValue
2021-03-09 13:13:30 +03:00
Dmitriy Dolovov
0fb99f1bf2
[Commonizer] Rename: entityBuilders.kt to CirSerializers.kt
2021-03-09 13:13:24 +03:00
Dmitriy Dolovov
b41cc57ff7
[Commonizer] Rename: Cir<Entity>.build<Entity> to Cir<Entity>.serialize<Entity>
2021-03-09 13:13:18 +03:00
Dmitriy Dolovov
010ea39417
[Commonizer] Rename: MetadataBuilder -> CirTreeSeralizer
2021-03-09 13:13:13 +03:00
Dmitriy Dolovov
4f33abf5e4
[Commonizer] Minor. Rename: CirTypeProjectionImpl -> CirRegularTypeProjection
2021-03-09 13:13:06 +03:00
Dmitriy Dolovov
6b0f080ed8
[Commonizer] Rename: TypeParameterResolver -> CirTypeParameterResolver
2021-03-09 13:12:59 +03:00
Dmitriy Dolovov
d07ede7305
[Commonizer] Move all CIR deserialization logic to CirDeserializers.kt
2021-03-09 13:12:53 +03:00
Dmitriy Dolovov
1737bdd4d4
[Commonizer] Extract CirTypeResolver to a separate file
2021-03-09 13:12:47 +03:00
Dmitriy Dolovov
6697c4d197
[Commonizer] Put all CIR utils to a single file
2021-03-09 13:12:42 +03:00
Dmitriy Dolovov
20ab88c001
[Commonizer] Extract CirStandardTypes from CirTypeFactory
2021-03-09 13:12:37 +03:00
Dmitriy Dolovov
298b595826
[Commonizer] Move TA expander to 'commonizer.metadata' package
2021-03-09 13:12:32 +03:00
Dmitriy Dolovov
82589c0898
[Commonizer] Move recursion markers to 'commonizer.cir' package
2021-03-09 13:12:26 +03:00
Dmitriy Dolovov
f0669c752f
[Commonizer] Extract creation of CirProperty from CirPropertyFactory
2021-03-09 13:12:21 +03:00
Dmitriy Dolovov
3778d1d631
[Commonizer] Extract creation of CirFunction from CirFunctionFactory
2021-03-09 13:12:15 +03:00
Dmitriy Dolovov
d3c60ab72e
[Commonizer] Extract creation of CirClass from CirClassFactory
2021-03-09 13:12:09 +03:00
Dmitriy Dolovov
fa9285aac7
[Commonizer] Extract creation of CirTypeAlias from CirTypeAliasFactory
2021-03-09 13:12:04 +03:00
Dmitriy Dolovov
52d0250dc6
[Commonizer] Extract creation of CirClassConstructor from CirClassConstructorFactory
2021-03-09 13:11:59 +03:00
Dmitriy Dolovov
cdba0d029e
[Commonizer] Extract creation of CirExtensionReceiver from CirExtensionReceiverFactory
2021-03-09 13:11:52 +03:00
Dmitriy Dolovov
885026f6db
[Commonizer] Extract creation of CirTypeParameter from CirTypeParameterFactory
2021-03-09 13:11:47 +03:00
Dmitriy Dolovov
b30ebe2842
[Commonizer] Drop CirPackageFactory
2021-03-09 13:11:41 +03:00
Dmitriy Dolovov
bfe0623837
[Commonizer] Drop CirModuleFactory
2021-03-09 13:11:35 +03:00
Dmitriy Dolovov
1f17d238f8
[Commonizer] Drop CirRootFactory
2021-03-09 13:11:30 +03:00
Dmitriy Dolovov
d7ed8ff804
[Commonizer] Encapsulate interning inside of CIR entities: CirTypeAliasType
2021-03-09 13:11:24 +03:00
Dmitriy Dolovov
36294352ef
[Commonizer] Encapsulate interning inside of CIR entities: CirClassType
2021-03-09 13:11:19 +03:00
Dmitriy Dolovov
c6d8cddcd9
[Commonizer] Encapsulate interning inside of CIR entities: CirTypeParameterType
2021-03-09 13:11:14 +03:00
Dmitriy Dolovov
3012839f49
[Commonizer] Encapsulate interning inside of CIR entities: CirAnnotation
2021-03-09 13:11:08 +03:00
Dmitriy Dolovov
f7d977d7c4
[Commonizer] Encapsulate interning inside of CIR entities: CirPropertySetter
2021-03-09 13:11:02 +03:00
Dmitriy Dolovov
f1739980d3
[Commonizer] Encapsulate interning inside of CIR entities: CirPropertyGetter
2021-03-09 13:10:57 +03:00
Dmitriy Dolovov
ec1e4fb26e
[Commonizer] Encapsulate interning inside of CIR entities: CirFunctionModifiers
2021-03-09 13:10:51 +03:00
Dmitriy Dolovov
5e41a7c66b
[Commonizer] Encapsulate interning inside of CIR entities: CirValueParameter
2021-03-09 13:10:46 +03:00
Dmitriy Dolovov
f43626d545
[Commonizer] Drop no more necessary logic for forward declarations
2021-03-09 13:10:40 +03:00
Dmitriy Dolovov
12be9c99ca
[Commonizer] Replace DescriptorVisibilit[y,ies] by Visibilit[y,ies]
2021-03-09 13:10:35 +03:00
Dmitriy Dolovov
7bdbc893a0
[Commonizer] Move test-specific logic to 'tests' module
2021-03-09 13:10:30 +03:00
Dmitriy Dolovov
a0baecc6e4
[Commonizer] Rename: CirTreeMergerV2 -> CirTreeMerger
2021-03-09 13:10:24 +03:00