Dmitriy Novozhilov
22a4da024b
[FIR] Fix all illegal usages of symbol.fir in checkers module
2021-07-13 10:31:34 +03:00
Dmitriy Novozhilov
e94d75d433
[FIR] Add opt-in annotation which prevents from using symbol.fir
2021-07-13 10:31:32 +03:00
Dmitriy Novozhilov
c99a02796f
[FIR] Replace getContainingClass usages with getContainingClassSymbol
2021-07-13 10:31:31 +03:00
Dmitriy Novozhilov
48a25e2fe6
[FIR] Add some status utils over symbols to addition to utils over fir
2021-07-13 10:31:30 +03:00
Dmitriy Novozhilov
b2c6dd8d53
Convert ClassKind.java to Kotlin
2021-07-13 10:31:29 +03:00
Dmitriy Novozhilov
0062f1ba27
Rename ClassKind.java to ClassKind.kt
2021-07-13 10:31:28 +03:00
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
173e194dac
Remove dependency on JVM specifics in serialization.common
...
Move handling of EnhancedNullability to JVM subclasses in
serialization.jvm. Looks like this was possible because of accidental
dependency of frontend on compiler.common.jvm introduced in 564d382b9d .
Also fix a minor typo in the file name typeEnhancementUtils.kt.
2021-07-13 01:54:41 +02:00
Alexander Udalov
7a42f603f2
JVM IR: rename mangler implementation classes
2021-07-13 01:54:41 +02:00
Alexander Udalov
1e16c7d8d4
Minor, update kotlinx-metadata-jvm changelog
...
According to changes in 1e7295c6 .
2021-07-12 22:40:02 +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
2fe7cf27ad
kotlinp: use JVM_IR backend for compiling tests
...
Also, test optimized delegated properties.
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
a7c13db575
JVM_IR: add $delegate methods to a few exclusion lists
...
1. they don't need type annotations;
2. internal ones include the module name before the `$delegate` part,
so further mangling is redundant
3. they don't need multifile facade bridges.
Unlike `$annotations`, delegated properties don't appear in interfaces,
so exclusions in InterfaceLowering would be redundant.
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
debd58d377
JVM: use $delegate methods in KProperty[0-2].getDelegate
...
#KT-39055 Fixed
2021-07-12 22:38:44 +02:00
pyos
1e7295c64e
JVM: add $delegate method support to kotlinx-metadata
...
and kotlinp as well -- it is now possible to see the effect of the
previous commit.
2021-07-12 22:38:44 +02:00
pyos
5d0102a966
JVM_IR: generate $delegate methods for val x by ::y
2021-07-12 22:38:44 +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
a943cdadef
JVM_IR: support generation of bound reflected property references
...
Not currently used though, since only references for delegated
properties' accessors are reflected, and those are unbound.
2021-07-12 22:38:43 +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
6a3c79bb9e
JVM: support on-the-fly generation of property delegates in metadata
...
Optimizations may remove the `x$delegate` field, in which case there
should be a `getX$delegate` method to reconstruct the value if needed
due to a call to `KProperty{0,1,2}.getDelegate`. We need to know the
signature of this method somehow.
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
Nikita Bobko
83c5c41dd4
Fix that marketplace identifies newly uploaded Kotlin plugin artifacts as Kotlin 1.2 artifacts
...
This `compiler.xml` is packed into `kotlin-idea.jar` and causes troubles for marketplace
in identifying correct Kotlin plugin version
2021-07-12 22:04:20 +03:00
Mikhail Glukhikh
a997a98054
Commend -Xopt-in deprecation warning (due to bootstrap problems)
2021-07-12 21:26:21 +03:00
Mikhail Glukhikh
a92ab1bc86
Deprecate EXPERIMENTAL_IS_NOT_ENABLED diagnostic #KT-47638 Fixed
2021-07-12 21:26:20 +03:00
Mikhail Glukhikh
5871f3d663
CLI: support -option=value syntax for non-advanced flags #KT-47640 Fixed
2021-07-12 21:26:19 +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
47c8bab48e
Replace -Xuse-experimental with -Xopt-in in codebase
2021-07-12 21:26:17 +03:00
Mikhail Glukhikh
195b6d1fb1
Deprecate -Xuse-experimental #KT-47623 Fixed
2021-07-12 21:26:16 +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
Florian Kistner
31420a934c
MI-187 Add asserts for module dependencies
2021-07-12 18:23:19 +03:00
Florian Kistner
3fe388bd17
MI-187 Also allow foreign DerivedModuleInfos, if their original module is known to the ResolverForProject
2021-07-12 18:23:17 +03:00
Mikhail Glukhikh
5f6be619c0
FIR: Don't get all*Checkers multiple times
2021-07-12 15:47:59 +03:00
Elena Lepilkina
3cabfb6a85
[K/N][New MM] Rare GC calls to optimize swiftinterop benchmarks
2021-07-12 12:27:05 +00:00
Elena Lepilkina
cdeda58ed4
[K/N][perf] Added opportunity to set up tagged branch and added benchmarks plots for new MM
2021-07-12 12:26:20 +00:00
Victor Petukhov
33a281c637
Introduce separate compiler flag for unrestricted builder inference
2021-07-12 13:57:13 +03:00
Alexander Shabalin
274dabb61d
Collect stacktraces without allocating kotlin objects.
2021-07-12 08:49:33 +00:00
Alexander Shabalin
fca89c2118
Backport span from C++20
...
Does not support ranges and construction from arbitrary contiguous iterators as both need C++20 concepts for an adequate implementation.
2021-07-12 08:48:20 +00:00