Jinseong Jeon
8f8ee88957
FIR2IR: refactor implicit cast insertion, part 1: implicit cast
2020-10-28 15:44:38 +03:00
Jinseong Jeon
e9a7b64ca0
FIR2IR: use AnnotationGenerator to convert file annotations
2020-10-28 15:44:37 +03:00
Mikhail Glukhikh
ef6b643b9c
[FIR2IR] Don't set WHILE_LOOP origin for blocks
2020-10-28 15:44:36 +03:00
Denis Zharkov
2589de6c49
FIR: Refine delegated members introduced to use-site scope
...
- Do not add hashCode/equals/toString
- Do not add privates and ones that are already declared
2020-10-28 11:43:25 +03:00
Denis Zharkov
2105a041a5
FIR: Optimize usages of containingClass and its implementation
2020-10-28 11:43:25 +03:00
Denis Zharkov
b6a312483a
FIR: Fix fir2symbol inconsistencies for imported properties
...
Do not copy delegateFieldSymbol because otherwise the old symbol will be rebound
to the new instance of a property
2020-10-28 11:43:25 +03:00
Denis Zharkov
09b7237ae5
FIR: Introduce importedFromObjectClassId
2020-10-28 11:43:25 +03:00
Denis Zharkov
4d9ef4d414
FIR: Get rid of CallableId::classId usages
...
Use dispatchReceiverType or containingClassAttr instead
2020-10-28 11:43:25 +03:00
Denis Zharkov
9996c983c9
FIR: Initialize dispatchReceiverType and containingClassAttr for callable members
2020-10-28 11:43:25 +03:00
Denis Zharkov
ecb89a66be
FIR: Copy attributes when copying declaration
...
Otherwise they share FirDeclarationAttributes instance that might lead
to problems when modifying only one of them
2020-10-28 11:43:25 +03:00
Denis Zharkov
52c6aebec2
FIR: Use copy-builders at FirObjectImportedCallableScope
2020-10-28 11:43:25 +03:00
Denis Zharkov
995b1aa1eb
FIR: Add FirCallableMemberDeclaration::dispatchReceiverType
2020-10-28 11:43:25 +03:00
Mikhael Bogdanov
21521aa397
Deprecate protected constructors call from public inline function
...
#KT-21177
2020-10-27 14:51:08 +01:00
Mikhail Glukhikh
09043fb98d
[FIR] JvmMappedScope: add mutable methods or not depending on a class
2020-10-27 10:27:06 +03:00
Mikhail Glukhikh
5c3269f489
[FIR] JvmMappedScope: don't add Java methods if Kotlin ones are here
2020-10-27 10:26:55 +03:00
Mikhail Glukhikh
caafe21e84
[FIR] Add CheckLowPriorityStage to callable reference resolve
2020-10-26 20:07:37 +03:00
Ilmir Usmanov
a775fa195b
Unbox inline class parameter of lambda if underlying type is Any or Any?
...
The inline class is boxed when we pass it as lambda argument, now we
unbox it. If the underlying type is not Any or Any?, bridge method does
the unboxing.
#KT-32450 Fixed
#KT-39923 Fixed
#KT-32228 Fixed
#KT-40282 Fixed
2020-10-26 17:34:37 +01:00
Dmitry Petrov
b1629cc5f4
JVM KT-22465 don't generate accessor to private setter in other class
2020-10-26 14:56:07 +03:00
Mikhail Glukhikh
e9b51b42f9
[FIR] Add test for both KT-10240 and KT-19446
2020-10-26 14:09:36 +03:00
Victor Petukhov
4f06162446
Get a callable reference expression to report an error on it properly, taking into account possible wrapping
...
^KT-42620 Fixed
2020-10-23 15:12:08 +03:00
Igor Chevdar
23d12a717e
[box-tests] Added a test
2020-10-23 14:22:48 +05:00
Ilya Goncharov
4479bf0933
[JS_IR] Enum constructor copy parameters with mapping by index
...
Previously mapping was by name, and there was clash in case of user
parameters named 'name' or 'ordinal'
^KT-39186 fixed
2020-10-23 11:42:43 +03:00
Mikhail Glukhikh
47a4bd1701
[FIR Java] Look into type arguments during dependent type parameter search
2020-10-23 08:12:17 +03:00
Mikhail Glukhikh
7f3d0af4f7
[FIR Java] Soften rules for matching types for may-be-special-builtins
...
This commit is workaround for cases like
MyJavaMap<KK : Bound, V> : java.util.Map<K, V>.
After signature changing and substitution we have
MyJavaMap.get(Object) declared and MyJavaMap.get(KK) from supertype,
which can't be otherwise matched as overriding one another.
2020-10-23 08:12:16 +03:00
Mikhail Glukhikh
81529a835b
Drop FirAbstractOverrideChecker.isEqualTypes
2020-10-23 08:12:16 +03:00
Mikhail Glukhikh
abc2866902
[FIR] Fold flexible types after substitution if possible
2020-10-23 08:12:16 +03:00
Mikhail Glukhikh
acb03cb28c
[FIR2IR] Expand type during super qualifier search
2020-10-23 08:12:16 +03:00
Mikhail Glukhikh
d3e85dbce0
[FIR] Implement replacing Object with type parameters for specials builtins
...
#KT-42601 Fixed
2020-10-23 08:12:15 +03:00
Mikhail Glukhikh
d40248cb53
[FIR] Extract computeJvmDescriptorReplacingKotlinToJava
2020-10-23 08:12:15 +03:00
Mikhail Glukhikh
0e7acd6e8b
[FIR Java] Add better type parameter erasure for override matching
...
Around KT-42601
2020-10-23 08:12:15 +03:00
Mikhail Glukhikh
17de486c23
[FIR Java] Drop nasty code providing type parameter erasure
2020-10-23 08:12:14 +03:00
Mikhail Glukhikh
ad12cc296b
[FIR] Expand type before adding equality constraint
2020-10-22 15:38:30 +03:00
Alexander Gorshenev
7815529eed
[Private fake overrides] Tests for private fake overrides construction
2020-10-22 13:23:29 +03:00
Mikhail Glukhikh
44bb12480b
[FIR2IR] Forbid private fake overrides in generator
2020-10-22 13:05:00 +03:00
Mikhail Glukhikh
3663bc6be3
FirClassSubstitutionScope: eliminate second constructor to simplify code
2020-10-22 13:05:00 +03:00
Mikhail Glukhikh
23e7468e57
[FIR2IR] Cache Java field-based properties more correctly #KT-42805 Fixed
...
Before this commit, we cached such IR properties by FIR property
which was created by Java field each time when we referenced it.
This led to signature clashes. Now we cache such IR properties
directly by associated FIR field.
2020-10-22 13:05:00 +03:00
Mikhail Glukhikh
3576cbf0d8
[FIR] Add test for KT-42805
2020-10-22 13:04:59 +03:00
Mikhail Glukhikh
f2c651ec9c
[FIR2IR] Don't generate Any delegated members for data class
...
#KT-42771 Fixed
2020-10-22 13:04:59 +03:00
Mikhail Glukhikh
44459e8ac7
FIR mangler: fix alias-based type handling #KT-42770 Fixed
2020-10-22 13:04:58 +03:00
Mikhail Glukhikh
289efd47b2
[FIR2IR] Cleanup code around implicit casts
2020-10-22 11:03:48 +03:00
Juan Chen
620a5d404d
[FIR2IR] Keep redundant cast on 'this' for local anonymous function
...
#KT-42517 Fixed
2020-10-22 10:51:23 +03:00
Jinseong Jeon
f4531b0f34
FIR: set missed source in various FirElements
...
This could be caught by debuggability tests, such as stepping tests,
which are not enabled for FIR yet.
Instead, for now, full pipeline tests will raise index out-of-bound
errors due to the undefined offsets, which stem from null source.
2020-10-22 10:51:21 +03:00
Jinseong Jeon
46cc01602e
FIR2IR: add implicit NOT_NULL cast if needed
2020-10-22 10:51:20 +03:00
Victor Petukhov
84129098cb
Add equality constraints without subtyping
...
^KT-42195 Fixed
^KT-41741 Fixed
2020-10-21 21:23:13 +03:00
Dmitry Petrov
b1b87becc8
PSI2IR more JVM-like exhaustive when behavior KT-36840
2020-10-21 20:07:11 +03:00
Ilya Goncharov
14d9aa1660
Add test on break in when without label
...
^KT-42262 fixed
2020-10-21 16:59:24 +03:00
pyos
a4b67f007f
JVM_IR: treat suspend-converted references as lambdas for inlining
...
Again, this is consistent with adapted function references, since
they're pretty much the same anyway.
2020-10-21 15:21:01 +02:00
pyos
95fb597da0
PSI2IR / FIR2IR: bind FunctionN as receiver when suspend-converting
...
This is more consistent with adapted references & allows skipping a
temporary variable.
2020-10-21 15:21:01 +02:00
pyos
ccf921510d
PSI2IR / FIR2IR: do not create temporaries for adapted references
...
Arguments to function references behave the same as arguments to
function calls and should be evaluated once regardless, so the temporary
is unnecessary.
2020-10-21 15:21:01 +02:00
Alexander Udalov
369056ca5d
Minor, add explicit type argument to workaround KT-42175
2020-10-21 15:19:25 +02:00