Dmitriy Novozhilov
5354e4afe4
[FIR] Ignore some MPP backend tests
...
FIR doesn't support actual declarations in same module where expect
declarations lay
2021-07-20 10:33:50 +03:00
Dmitry Petrov
e276dec4de
JVM don't merge local values in FixStackAnalyzer
...
We care only about stacks there.
This yields about 10-15% in a pathological case such as KT-41510.
2021-07-19 19:24:57 +03:00
Dmitry Petrov
d41fc0b599
PSI2IR fix suspend conversion tests
...
- support chained suspend conversion + SAM conversion
- support suspend conversion in vararg elements
2021-07-17 09:10:19 +03:00
Victor Petukhov
0cc6fbbc6e
Add tests for converting expressions of function types to suspending functional types
2021-07-17 09:10:17 +03:00
Mads Ager
b51ff799cb
Fix IteratorNext intrinsic to cast its dispatch receiver to
...
the expected type.
^KT-47741 Fixed.
2021-07-16 21:07:11 +02:00
Victor Petukhov
357fda2efa
Initialize builder inference lambda anyway, even a call is inapplicable
...
^KT-47744 Fixed
2021-07-16 19:32:35 +03:00
Mikhael Bogdanov
5f53a2071d
Update test affected by ProperTypeInferenceConstraintsProcessing feature
2021-07-16 13:26:37 +00:00
Mikhael Bogdanov
392dce9a40
Update test affected by PrivateInFileEffectiveVisibility feature
2021-07-16 13:26:36 +00:00
Mikhael Bogdanov
c519003e13
Update test affected by ProhibitSimplificationOfNonTrivialConstBooleanExpressions feature
2021-07-16 13:26:36 +00:00
Mikhael Bogdanov
a657e63dbb
Update test affected by ForbidUsingExtensionPropertyTypeParameterInDelegate feature
2021-07-16 13:26:35 +00:00
Mikhael Bogdanov
70df4f10c5
Update test affected by AbstractClassMemberNotImplementedWithIntermediateAbstractClass feature
2021-07-16 13:26:34 +00:00
Mikhael Bogdanov
f05d470f6a
Update test affected by 'ProhibitJvmFieldOnOverrideFromInterfaceInPrimaryConstructor' feature
2021-07-16 13:26:33 +00:00
pyos
ad7ed483f3
JVM_IR: copy correspondingProperty of static external functions
...
Required for correctly mapping their names.
#KT-47715 Fixed
2021-07-16 15:24:05 +02:00
Ilya Chernikov
c9b6847d83
FIR: Add test on delegated member with default param in overridden...
...
sensitive to the file processing order, therefore failing on the
current fir2ir at least with the new irBuiltIns
2021-07-16 02:24:36 +03:00
Ilya Chernikov
8f5d5c3ace
FIR: Fixes in testdata after implementing FIR-specific IrBuiltIns
2021-07-16 02:24:29 +03:00
Dmitry Petrov
8ea4916d64
JVM_IR KT-47739 recognize fake override external stubs
2021-07-15 19:20:39 +03:00
Dmitry Petrov
dc16d66fb1
Minor: regenerate tests
2021-07-13 21:23:17 +03:00
pyos
3dc7b6c3ee
IR: preserve argument evaluation order more carefully
...
1. receivers should be evaluated before named arguments;
2. just because an argument has no side effects doesn't mean it is not
affected by the other arguments' side effects - in that case it
should still be evaluated in source order.
#KT-47660 Fixed
2021-07-13 21:23:15 +03:00
Dmitriy Novozhilov
4deb935f76
[FIR] Mark value classes as inline in raw fir building
2021-07-13 10:31:23 +03: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
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
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
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
Dmitry Petrov
1f8d6d6edb
JVM additional DCE tests
2021-07-12 11:09:30 +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
Victor Petukhov
c3a5a7754d
Use proper applicability for constraint warnings
...
^KT-47316 Fixed
2021-07-09 14:07:01 +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
9fad55d551
[FIR] Use @DeprecatedSinceKotlin in the resolution
2021-07-07 16:19:27 +03:00
Alexander Udalov
113632c49c
Psi2ir: load single-value Java array annotation arguments correctly
...
#KT-47467 Fixed
2021-07-05 21:49:10 +02:00
pyos
c3a91efea3
JVM_IR: fix primitive comparison optimizations
...
1. the `primitive == object?.something` fusion should not apply to
`primitive.equals(object?.something)` because it can't;
2. coercions to Int are there for a reason - don't remove them;
3. better optimize `primitive == object?.something` -- the result
should be subject to if-null fusion, so it needs to have a specific
pattern that resembles safe calls.
#KT-47597 Fixed
2021-07-05 18:13:09 +03:00
Dmitriy Novozhilov
ae608ea67f
[FE 1.0] Always create return value for CallInstruction
...
This fixes missing `USED_AS_EXPRESSION` recordings
^KT-47527 Fixed
2021-07-02 17:55:20 +03:00
Igor Laevsky
d835b3c164
WASM: Implement spread operator
2021-07-02 15:39:29 +03:00
Dmitry Petrov
584310615c
JVM_IR KT-47499 use proper signature for 'clone' intrinsic
2021-07-01 22:10:47 +03:00
Alexander Udalov
ae07127f08
JVM IR: support raw types in typeOf
2021-07-01 19:33:56 +02:00
Alexander Udalov
012c7c39af
Improve KType.toString for primitive type arguments in stdlib implementation
2021-07-01 19:33:55 +02:00
Alexander Udalov
7306256127
JVM IR: support mutability-flexible types
2021-07-01 19:33:55 +02:00
Alexander Udalov
0cb905a4b1
Support mutable collection types in typeOf
...
flexibleTypes_1_6.kt is fixed for JVM IR in a subsequent commit.
#KT-35877 Fixed
2021-07-01 19:33:55 +02:00
Alexander Udalov
6e975b3498
Support flexible types internally in typeOf
...
#KT-45066 Fixed
2021-07-01 19:33:55 +02:00
Denis.Zharkov
a3f64f65f2
FIR: Fix serialization of non-delegated members in FirDelegatedMemberScope
2021-07-01 17:49:39 +03:00
Roman Artemev
09d30c91bf
[JS TESTS] Disable mangler checker in tests
2021-07-01 17:40:41 +03:00
Roman Artemev
5a284de2d4
add tests for private signatures
...
regenerate tests
add test for EnumEntry's argument declarations
add another test
regenerate test
fix test a bit
2021-07-01 17:40:27 +03:00
Dmitry Petrov
37b05cd9c2
JVM_IR KT-47120 treat outer name as case-insensitive for local classes
2021-06-30 14:04:22 +03:00
Dmitriy Novozhilov
4225813d79
[FIR] Update CFG dumps according to changed order of visiting class children
2021-06-29 21:03:29 +03:00
Dmitry Petrov
68c3f30aa7
JVM_IR KT-47510 indy callee parent is a package fragment, not a class
2021-06-29 17:00:31 +03:00
Dmitry Petrov
768afc5ba4
JVM_IR KT-47492 fix 'for' loop generation
2021-06-28 21:07:54 +03:00
Mikhael Bogdanov
5f62b72c82
Properly process big types
2021-06-26 06:10:16 +02:00
Ivan Kochurkin
5741374883
[FIR] Report UPPER_BOUND_VIOLATED only on checkers stage, fix detection of missing cases and testData
2021-06-25 20:57:45 +03:00