Dmitriy Novozhilov
22938522b3
[FIR] Add forgotten updating phase of value parameters
2021-07-13 10:31:27 +03:00
Dmitriy Novozhilov
d3966e8844
[FIR] Add accessors to parts of signatures to symbols
2021-07-13 10:31:26 +03:00
Dmitriy Novozhilov
0f06ab537f
[FIR] Remove useSiteSession parameter from ensureResolved
2021-07-13 10:31:25 +03:00
Dmitriy Novozhilov
92cfaf68bb
[FIR] Remove unused FirFunctionSymbol.parameters
2021-07-13 10:31:24 +03:00
Dmitriy Novozhilov
4deb935f76
[FIR] Mark value classes as inline in raw fir building
2021-07-13 10:31:23 +03:00
Dmitriy Novozhilov
8df56af068
[FIR] Add forgotten settings of resolve phase
2021-07-13 10:31:22 +03:00
Dmitriy Novozhilov
9f161f16b3
[FIR] Move FirPhaseManager to :compiler:fir:tree
2021-07-13 10:31:21 +03:00
Dmitriy Novozhilov
51fc2e453f
[FIR] Unity FirCallableDeclaration and FirCallableMemberDeclaration
...
After removal of all diamonds in FirDeclaration hierarchy
FirCallableMemberDeclaration was only one inheritor of
FirCallableDeclaration, so there is no need to keep them both
2021-07-13 10:31:20 +03:00
Dmitriy Novozhilov
adc45fd3dd
[FIR] Remove useless generic parameter from deprecation utils
2021-07-13 10:31:18 +03:00
Dmitriy Novozhilov
c50fe4e399
[FIR] Move some components implementations from :entrypoint to appropriate modules
2021-07-13 10:31:17 +03:00
Alexander Udalov
7a42f603f2
JVM IR: rename mangler implementation classes
2021-07-13 01:54:41 +02:00
pyos
d988853c11
JVM_IR: optimize out redundant delegated property receiver fields
...
Now this:
class C {
val x = something
val y by x::property
}
is *exactly* the same as this:
class C {
val x = something
val y get() = x.property
}
(plus a `getY$delegate` method)
2021-07-12 22:38:45 +02:00
pyos
791fa411d8
JVM_IR: write correct lambda invoke() signature in metadata
2021-07-12 22:38:45 +02:00
pyos
6897e89bbc
JVM: add tests for optimized getDelegate
2021-07-12 22:38:45 +02:00
pyos
7ae4303e1b
JVM_IR: slightly refactor JvmPropertiesLowering
...
to make it easier to generate different kinds of synthetic methods.
#KT-47609 Fixed
2021-07-12 22:38:44 +02:00
pyos
664bb055c8
JVM_IR: support codegen of property delegate methods
...
The purpose of a property-related method is now determined by its
origin; codegen no longer assumes all methods with Property metadata
source are `getX$annotations`.
2021-07-12 22:38:43 +02:00
pyos
e49410e07b
JVM_IR: optimize delegation by property references
...
E.g. a statement like
var x by ::y
is semantically equivalent to
var x
get() = y
set(value) { y = value }
and thus does not need a full property reference object, or even a field
if the receiver is not bound.
#KT-39054 Fixed
#KT-47102 Fixed
2021-07-12 22:38:43 +02:00
Ivan Kochurkin
66e052b9b3
[FIR] Implement SPREAD_OF_NULLABLE
2021-07-12 23:16:47 +03:00
Mikhail Glukhikh
a92ab1bc86
Deprecate EXPERIMENTAL_IS_NOT_ENABLED diagnostic #KT-47638 Fixed
2021-07-12 21:26:20 +03:00
Mikhail Glukhikh
d8417fd622
Introduce -opt-in stable compiler option instead of -Xopt-in
...
#KT-47099 Fixed
2021-07-12 21:26:18 +03:00
Mikhail Glukhikh
d9531f0c61
Don't report EXPERIMENTAL_ANNOTATION_ON_WRONG_TARGET for forbidden targets
...
#KT-47589 Fixed
2021-07-12 21:26:15 +03:00
Ilmir Usmanov
ac7538a269
Set receivers for inline class default function stub calls
...
Default function stubs have dispatch and receiver parameters, but
inline class methods are static by design with receivers as ordinary
parameters. So, take these parameters and set them as receivers during
lowerings.
#KT-46230: Fixed
2021-07-12 19:46:09 +03:00
Mikhail Glukhikh
5f6be619c0
FIR: Don't get all*Checkers multiple times
2021-07-12 15:47:59 +03:00
Dmitry Petrov
1f8d6d6edb
JVM additional DCE tests
2021-07-12 11:09:30 +03:00
Dmitriy Novozhilov
6d364a5fee
[FIR] Register enhancement state in library session too
...
This is needed for enhancement scopes for deserialized java declarations
2021-07-12 10:15:07 +03:00
Dmitriy Novozhilov
ddc3ef1121
Fix all illegal usages of safeAs function
...
Call of `safeAs` without specifying explicit type argument is hardly
readable and may leads to hardly detectable errors
2021-07-12 10:11:36 +03:00
Victor Petukhov
584facc95f
Fix fir-related problems and tests for inferring self types
2021-07-09 19:21:25 +03:00
Victor Petukhov
c2cf2f36cd
Implement inferring materialized self types through a default type in ResultTypeResolver
2021-07-09 19:21:04 +03:00
Victor Petukhov
3787099a38
Put the type inference on calls with self types under the compiler flag
2021-07-09 19:20:56 +03:00
Victor Petukhov
51c5a54e31
Support type inference for self type materialization calls
2021-07-09 19:20:54 +03:00
Mikhail Zarechenskiy
44cf4be1e5
Inference for some kind of self types
2021-07-09 19:20:52 +03:00
Andrey Zinovyev
db72fd1e93
[FIR] Fix inheritance check for substitution overrides
...
And delegates
2021-07-09 17:14:37 +03:00
Alexander Udalov
d43ed1cf75
Minor, add test on typeOf with intersection type
2021-07-09 14:53:57 +02:00
Alexander Udalov
a7e48c3af1
Improve toString of platform types created by typeOf
...
In the stdlib implementation, render "!" if the type is only
nullability-flexible. Otherwise, render "($lower..$upper)".
Note that full kotlin-reflect has a much more complicated logic (see
`DescriptorRendererImpl.renderFlexibleType`) that renders things like
`(Mutable)List` and so on. It is not a goal of the stdlib implementation
to replicate all of that, since it requires copying a large amount of
code, namely the entirety of `JavaToKotlinClassMap` to map Java class
names to Kotlin.
2021-07-09 14:53:56 +02:00
Alexander Udalov
ddfa94e7e9
Support Nothing type in typeOf
...
The proper support will come in KT-15518, but that would be a breaking
change even for stable Kotlin without kotlin-reflect. Before that issue
is fixed, represent Nothing in types with the Void class, and use a flag
in the no-reflect implementation to remember that it's not actually the
Void class itself.
#KT-39166 Fixed
2021-07-09 14:40:05 +02:00
Dmitriy Novozhilov
aa3a73c6c2
[FIR] Move JavaTypeEnhancementState to session component
2021-07-09 14:38:02 +03:00
Simon Ogorodnik
e102bdea20
[Build] Fix xerces usage in FIR modularized tests
2021-07-09 11:08:13 +00:00
Victor Petukhov
c3a5a7754d
Use proper applicability for constraint warnings
...
^KT-47316 Fixed
2021-07-09 14:07:01 +03:00
Victor Petukhov
1224d28deb
Move java type enhancement stuff to :core:compiler.common.jvm
2021-07-09 13:22:02 +03:00
Ilya Muradyan
787ce6335c
Change nestedClasses logic to accept classes with nested type aliases
...
#KT-47650 fixed
2021-07-08 21:04:53 +03:00
Andrey Zinovyev
1cb34541bd
[FIR] Fixes after delegation scope rework
2021-07-08 18:13:52 +03:00
Andrey Zinovyev
221e642d97
[FIR] Fix inheritance diagnostics for new FirDeclaration hierarchy
...
Plus several small fixes in reporting itself
2021-07-08 18:13:49 +03:00
Andrey Zinovyev
b36f8ed8f5
[FIR] DATA_CLASS_OVERRIDE_CONFLICT diagnostic
2021-07-08 18:13:48 +03:00
Andrey Zinovyev
b44785c24e
[FIR] NOTHING_TO_OVERRIDE diagnostic
2021-07-08 18:13:47 +03:00
Andrey Zinovyev
9452b788bf
[FIR] Implement CANNOT_OVERRIDE_INVISIBLE_MEMBER diagnostic
2021-07-08 18:13:46 +03:00
Andrey Zinovyev
f4c8108ee0
[FIR] Substitute type parameters in inheritance checker
2021-07-08 18:13:45 +03:00
Andrey Zinovyev
3f7d050f8f
[FIR] Implement CONFLICTING_INHERITED_MEMBERS diagnostic
2021-07-08 18:13:44 +03:00
Andrey Zinovyev
78519f851e
[FIR] Implement VAR_OVERRIDDEN_BY_VAL_BY_DELEGATION diagnostic
2021-07-08 18:13:43 +03:00
Andrey Zinovyev
c98cd3b190
[FIR] Implement properties types mismatch on inheritence
...
PROPERTY_TYPE_MISMATCH_ON_INHERITANCE,
VAR_TYPE_MISMATCH_ON_INHERITANCE,
PROPERTY_TYPE_MISMATCH_BY_DELEGATION
2021-07-08 18:13:41 +03:00
Andrey Zinovyev
8c7ee0b714
[FIR] Implement RETURN_TYPE_MISMATCH_BY_DELEGATION diagnostic
2021-07-08 18:13:40 +03:00