Georgy Bronnikov
565874b3a0
Pass along type in IfNullExpressionFusionLowering
2020-04-23 18:18:34 +03:00
Alexander Udalov
025d1ca64d
psi2ir: rework representation of bound adapted function references
...
This fixes the problem in JVM IR backend which didn't pass bound
receiver value of an adapted function reference to the superclass
(kotlin/jvm/internal/AdaptedFunctionReference), which caused equals to
work incorrectly on such references (see changes in box tests).
Previously, bound adapted function reference was represented as
IrFunctionExpression to an adapter function which calls the callee. The
value of the bound receiver in that case could only be found in the body
of that adapter function. This is not very convenient, so this change
makes psi2ir produce a block of the adapter function + reference to it.
The bound receiver value is then found in the reference. This is
basically similar to what ProvisionalFunctionExpressionLowering is doing
for all function expressions. And since this IR structure is already
supported in FunctionReferenceLowering, the problem in the JVM IR is
fixed without any additional modifications.
However, inliners do not support this IR structure yet, see KT-38535 and
KT-38536.
2020-04-23 16:47:23 +02:00
Jinseong Jeon
39e1635c41
[FIR2IR] Pre-cache original function type parameters for fake overrides
2020-04-23 17:19:44 +03:00
pyos
456469eb3b
JVM: fix remapping of new T inside regenerated copies of T
...
In general, `InliningContext.findAnonymousTransformationInfo` was not
reliable because it mapped each type to *some* info for that type,
preferring ones with `shouldRegenerate == true` if those exist. Thus, it
returned incorrect results if one type was regenerated multiple times,
e.g. in a nested inlining context or because of a `finally` (which
duplicates anonymous objects). The solution is to avoid a global map and
attach the current transformation info directly to the current inlining
context.
2020-04-23 14:20:54 +02:00
Mikhail Glukhikh
57b4a54766
[FIR] Calculate effective visibility inside anonymous object properly
...
#KT-38432 Fixed
2020-04-23 13:57:27 +03:00
Jinseong Jeon
07add635eb
FIR2IR: generate synthetic members for data class only if needed
2020-04-23 13:44:13 +03:00
Mark Punzalan
b74652aa5b
[FIR] Use ieee754equals for floating-point equality operations
2020-04-23 11:50:54 +03:00
Ilya Kirillov
1a90866ce1
FIR: handle member scope for anonymous objects
...
#KT-37120 fixed
2020-04-23 10:38:41 +03:00
Mads Ager
8bc360fa0c
Properly link properties and their getter/setters.
...
This allows removing a hack in the MethodSignatureMapper.
When introducing non-getter methods that dispatch to a getter
we have to be careful to use the right name.
DeepCopyIrTreeWithSymbols should create the link between new
properties and their new getter/setter.
2020-04-22 16:26:59 +02:00
Mikhail Zarechenskiy
cb975bde7c
Add test for questionable chained fun -> suspend conversion
2020-04-22 16:10:45 +03:00
Mikhail Zarechenskiy
ac642cf175
Support suspend conversion in callable reference adaptation
...
#KT-15917 In Progress
2020-04-22 16:10:45 +03:00
Mikhail Zarechenskiy
537a59d6ca
Introduce basic suspend conversion in FE
...
#KT-15917 In Progress
2020-04-22 16:10:44 +03:00
Igor Yakovlev
ed3ae785fb
Fix invalid signature for generic UL method
...
Fixed #KT-38348
2020-04-22 12:26:51 +03:00
Ilya Matveev
e4f4b4eef0
[JS IR] Support setting custom module name (= unique name)
...
Required for #KT-36721.
2020-04-22 10:50:26 +07:00
Georgy Bronnikov
3bb32941a0
IR: bugfix in KotlinNothingValueExceptionLowering
2020-04-21 21:00:16 +03:00
Dmitry Petrov
318d4d17ba
KT-38337 Fix inline class value coercion in delegated members
2020-04-21 13:21:58 +03:00
Mikhail Bogdanov
d83a35d898
Minor. Update test data to support Corretto JVM 11
2020-04-21 12:03:02 +02:00
Denis Zharkov
6fdbc38cf1
FIR: Fix label/receiver for lambda within infix calls
...
While this fix only changes label name, it's important for proper
lambda resolution because receiver is set for a lambda
only in presence of a label
This commit fixes a lot of checkType calls in diagnostic tests
2020-04-21 09:52:52 +03:00
Denis Zharkov
fa3b3e7a9a
FIR: Fix false positive INAPPLICABLE_INFIX_MODIFIER
2020-04-21 09:48:03 +03:00
Denis Zharkov
7612f37c85
FIR: Prohibit calling singletons' constructors
2020-04-21 09:48:03 +03:00
Dmitry Petrov
05cb0e8994
KNVE: support in JVM_IR and JS_IR
2020-04-20 20:07:52 +03:00
Mikhail Glukhikh
4b819aa028
Remove incorrect comment from old FE diagnostic test
2020-04-20 18:40:48 +03:00
Mikhail Glukhikh
790a517fa3
[FIR TEST] Add bad test data (submitted KT-38400)
2020-04-20 18:33:40 +03:00
Nick
c4b7ac994b
[FIR] Support diagnostic ABSTRACT_SUPER_CALL
2020-04-20 18:33:40 +03:00
rapturemain
8960829c01
[FIR] Cast error on the element name instead of the whole body
2020-04-20 17:27:16 +03:00
Mikhail Glukhikh
4c639a840d
[FIR] Apply bad test data (protected eff. visibility related, KT-38401)
2020-04-20 17:27:11 +03:00
rapturemain
6d63de01ac
[FIR] Fix effective visibility calculation & relevant test data
2020-04-20 17:25:26 +03:00
Mikhail Glukhikh
96d8b0bea3
FIR: make KFunctionX derived from KFunction
2020-04-20 17:05:37 +03:00
Mikhail Glukhikh
4bb6410ce3
[FIR TEST] Temporary ignore overrideDefaultArgument test (KT-38416)
...
This test enters an infinite loop and can't finish
2020-04-20 17:05:35 +03:00
Mikhail Glukhikh
fe02c2bab3
FIR: return Unit from empty lambda
2020-04-20 17:05:34 +03:00
Mikhail Glukhikh
aada7bfe51
FIR: handle suspend functions in callable reference resolve properly
2020-04-20 17:05:31 +03:00
Jinseong Jeon
c26adf53dd
FIR: resolve suspend lambda properly
2020-04-20 17:05:30 +03:00
Pavel Kirpichenkov
b91cf13259
[NI] Fix expicit super receiver check
...
^KT-37497 Fixed
2020-04-20 10:56:13 +03:00
Mikhail Zarechenskiy
befa1e114c
Add tests for obsolete issues
...
#KT-38092 Obsolete
#KT-38179 Obsolete
#KT-35105 Obsolete
#KT-36696 Obsolete
#KT-36947 Obsolete
#KT-37337 Obsolete
#KT-37309 Obsolete
#KT-37727 Obsolete
#KT-37735 Obsolete
#KT-37853 Obsolete
#KT-37920 Obsolete
#KT-37709 Obsolete
#KT-37706 Obsolete
2020-04-20 04:10:37 +03:00
Georgy Bronnikov
2c4fcebfec
IR: handle adapted bound references
2020-04-18 20:31:57 +03:00
Jinseong Jeon
9f1ecadd65
IR: more consolidation of synthetic member generation for data class.
2020-04-17 12:38:38 +03:00
Dmitriy Novozhilov
7f02d57d88
[FIR] Correctly detect super type in delegated constructor call
2020-04-17 12:37:29 +03:00
Ilya Muradyan
d2fec96f38
Add new REPL API JVM implementation
2020-04-16 21:16:08 +02:00
Ilmir Usmanov
5ab55fbb57
Support -J<jvm-param> and "-Dname=value" in windows runner script
...
Otherwise, -J-ea has no effect on windows, which breaks assert tests.
Wrap parameters with delimeters in quotes.
#KT-30211 Fixed
2020-04-16 21:11:50 +02:00
Dmitry Petrov
ac5411c32e
Command-line option disabling KotlinNothingValueException generation
2020-04-16 19:38:30 +03:00
Ilya Kirillov
1535873c07
Do not try to lazy parse a block without opening bracket
...
It can consume the whole file in such case
which will result PsiBuilder going crazy
#KT-36191 fixed
2020-04-16 15:40:21 +03:00
LepilkinaElena
4f9364f997
Native specific frontend checker for @ThreadLocal ( #3293 )
2020-04-16 15:23:06 +03:00
Georgy Bronnikov
41a28bde5c
JVM_IR: repair synthetic accessors to fields
2020-04-16 15:08:11 +03:00
Mikhail Bogdanov
461c368ee0
Minor. Unmute test
2020-04-16 13:49:48 +02:00
Igor Chevdar
6d86d6ccdc
[box-tests] Turned on some tests on fun interfaces for JS & Native
2020-04-16 16:01:17 +05:00
Mikhail Zarechenskiy
4ffcbc0c2f
[NI] Properly support UnsafeVariance annotation
...
#KT-38134 Fixed
#KT-34433 Fixed
#KT-31823 Fixed
2020-04-16 13:55:47 +03:00
Georgy Bronnikov
611c4fe052
JVM_IR: repair super calls to methods of Any
2020-04-16 10:53:48 +03:00
Dmitry Petrov
e2ee3d1d18
Unmute passing tests
2020-04-16 09:07:35 +03:00
Steven Schäfer
74791495d7
JVM IR: Box inline classes in covariant overrides (KT-30419)
2020-04-16 09:07:35 +03:00
Anton Bannykh
81798282b9
JS: support explicit SAM constructor invocation
2020-04-15 17:13:21 +03:00