Andi Wenger
f9d2ca68ce
KJS IR: Fix KT-45738 - Consider recursive checkForPrimitiveOrPattern
...
Recursive results from checkForPrimitiveOrPattern were ignored. If it found a case/condition that could not be optimized the resulting "false" was not propagated. This would lead to a "optimized" when without all conditions.
- see KT-45738
- The return is now lifted out of the when to make it more obvious what is going on.
- New test for mixed multiple conditions in when
2021-04-29 23:52:01 +03:00
Steven Schäfer
84d78035e4
JVM IR: Avoid double mangling of function reference invoke methods
2021-04-29 13:10:43 +02:00
Alexander Udalov
276ffd5a4b
JVM IR: fix ::class reference and type mapping for scripts
...
#KT-46284 Fixed
2021-04-29 00:33:34 +03:00
Ilmir Usmanov
0c0710bb79
Fix outer class accesses inside suspendImpl functions
...
We need to generate this$0 fields to get to the outer class and generate
accesses to these fields inside suspendImpl function.
#KT-46214 Fixed
2021-04-27 10:44:18 +02:00
Ilmir Usmanov
dc2485ae71
Support suspend functions as superinterfaces
...
Forbid mixing suspend and non-suspend functional supertypes.
Since JVM BE generates suspend functional types as non-suspend ones
with SuspendFunction marker interface, there is not way to distinguish
non-suspend functional type from suspend one if they are mixed.
#KT-18707 Fixed
2021-04-26 22:14:32 +02:00
Steven Schäfer
a1c1a32515
JVM: Fix unsigned literals in API version < 1.5
2021-04-26 15:11:45 +03:00
Mark Punzalan
9a4742c08d
FIR: Properly build nullable suspend function types, and aggregate
...
modifiers and annotations within KtTypeReference/REFERENCE_TYPE nodes.
2021-04-26 15:11:38 +03:00
Igor Chevdar
7dcdbf283b
[box-tests] Added test
2021-04-26 11:53:27 +05:00
Ilmir Usmanov
f7a9bc3521
Minor. Make test actually suspend and add a test without suspension
2021-04-23 03:50:08 +02:00
pyos
7d95943b8b
JVM_IR: do not box inline classes in suspend synthetic accessors
2021-04-23 03:49:43 +02:00
Steven Schäfer
d3d4e94cd6
JVM: Fix constant folding for unsigned values
2021-04-21 19:10:31 +03:00
Dmitry Petrov
732405895f
Add tests for KT-45308
2021-04-21 17:36:12 +03:00
Dmitry Petrov
f228c3bb04
Add tests for KT-45236
2021-04-21 17:24:41 +03:00
Dmitry Petrov
f519150c08
JVM_IR KT-46189 lower tailrec functions after local declarations
2021-04-21 11:27:11 +03:00
Alexander Udalov
21e9bd7ea2
Add regression tests for obsolete issues
...
#KT-9304
#KT-14961
#KT-16549
#KT-21080
#KT-28234
#KT-30102
#KT-31994
#KT-34291
#KT-38099
#KT-41174
#KT-44622
#KT-44701
#KT-44781
#KT-44849
#KT-44978
#KT-45081
#KT-45286
#KT-45383
#KT-45444
#KT-45907
2021-04-20 21:24:29 +02:00
Alexander Udalov
e6c089ef40
IR: fix SAM conversion for types with contravariant intersection argument type
...
In the added test, the problem was that the SAM type as computed by
`SamTypeFactory.createByValueParameter` was `Consumer<{BaseClass &
BaseInterface}>`, which was latter approximated in psi2ir during the
KotlinType->IrType conversion to `Consumer<out Any?>` (here:
https://github.com/JetBrains/kotlin/blob/3034d9d791cf1f9033104e12448e0d262d3bc3ce/compiler/ir/ir.psi2ir/src/org/jetbrains/kotlin/psi2ir/generators/ArgumentsGenerationUtils.kt#L606 ),
because intersection type argument is approximated to `out Any?`.
To avoid this, replace intersection type in immediate arguments of a SAM
type with the common supertype of its components at the same place where
we're getting rid of projections.
#KT-45945 Fixed
2021-04-20 17:31:14 +02:00
Alexander Udalov
4fffed4165
Improve test on equals/hashCode for KProperty accessors
...
Remove duplication & unnecessary checks, check equality in both
directions, check hashCode, add more cases, rename variables for
clarity.
#KT-13490
2021-04-19 20:39:54 +02:00
pyos
dab693b075
Revert "JVM IR: Implement CHECK_NOT_NULL as a lowering"
...
This reverts commit dcd72b06d8 .
Using a temporary variable has an effect on casts and GC.
2021-04-19 16:05:12 +02:00
pyos
354acc1fd5
FIR: permit * as FunctionN type argument
...
`() -> *` is not valid, but `F<*>` where `typealias F<T> = () -> T` is.
2021-04-15 14:59:27 +03:00
Denis.Zharkov
32dacc37c0
FIR: Fix OverloadResolutionByLambdaReturnType case
2021-04-15 14:48:20 +03:00
Ilmir Usmanov
1c48fb28db
Generate return when generating continuation class for expression body
...
Otherwise, the function will return Unit instead of correct value.
#KT-46007 Fixed
2021-04-15 13:54:45 +03:00
Alexander Udalov
005aa57f6d
Remove obsolete module cli-js-klib
...
It's no longer used anywhere in the build.
2021-04-14 13:47:02 +02:00
Alexander Udalov
988d1365a8
Remove dependency of backend.wasm on ir.tree.impl and ir.tree.persistent
2021-04-14 13:47:02 +02:00
Alexander Udalov
643c3f26c1
Remove dependency of backend.js on ir.tree.impl
...
By taking the instance of IrFactory either from SymbolTable, or passing
it from cli-js which depends on both ir.tree.impl and
ir.tree.persistent, and can choose the appropriate implementation.
2021-04-14 13:47:02 +02:00
Ilmir Usmanov
74b1fdcc60
Minor. Add regression test
...
#KT-45991
2021-04-14 10:48:59 +02:00
Ilmir Usmanov
29c975fc43
Minor. Add regression test
...
#KT-45539 Obsolete
2021-04-14 10:48:57 +02:00
Ilmir Usmanov
19b1b48e87
Minor. Add tests to check returning inline class from default method
...
#KT-45539 Obsolete
2021-04-14 10:48:54 +02:00
Steven Schäfer
7a9ff15d73
JVM IR: Handle suspend interface default methods with generic types (KT-45166)
2021-04-13 23:04:32 +02:00
pyos
cc7187e49b
JVM_IR: cast argument of enumValueOf to String in bytecode
...
Generic functions and implicit casts may return a supertype instead.
#KT-45865 Fixed
2021-04-13 13:24:24 +02:00
Dmitry Petrov
f59b49db68
JVM_IR KT-45967 generate accessor for argument of indy intrinsic
...
TODO handle inaccessible constructors gracefully
2021-04-12 17:36:24 +03:00
Victor Petukhov
e8275d2527
Complete old inference's callable references properly, by updating descriptor, resolved call and recorded expression's type
...
^KT-45721 Fixed
^KT-44994 Fixed
2021-04-12 14:00:38 +03:00
Alexander Udalov
ea22f4b681
IR: check absence of extension receiver in isMethodOfAny
...
Otherwise extension methods named toString/equals/hashCode were
generated incorrectly on JVM IR, which could result in
AbstractMethodError at runtime.
#KT-45963 Fixed
2021-04-11 13:54:13 +02:00
Ilmir Usmanov
bce92d824a
Minor. Add tests to check returning Result from functions
...
Mainly, that virtual functions, returning Result, are mangled.
#KT-45855
2021-04-09 22:09:03 +03:00
Mads Ager
b27a109a1e
[JVM] Fix shrinking of local range for dead variables.
...
Coroutine transform would occasionally *extend* the range of a
local instead of shrinking it (if the next suspension point
is after the end point for the local). That leads to the local
variable table having a local that covers code where it is not
defined. That is invalid and leads to D8 removing the locals
table from the code.
2021-04-09 19:06:13 +03:00
Abduqodiri Qurbonzoda
46338224e1
Remove deprecated JQuery
2021-04-08 18:43:16 +03:00
Abduqodiri Qurbonzoda
40d1849f33
Migrate compiler, idea and others to new case conversion api
2021-04-08 03:22:02 +03:00
Ilya Gorbunov
e450a6494a
Migrate deprecations in core, compiler, idea, tests
...
Replacing deprecated Char.toInt() with Char.code and
Number.toChar() with Number.toInt().toChar(), where Number is not Int.
KT-23451
2021-04-07 18:30:20 +03:00
Ilya Goncharov
5955faecec
[IR] Ignore WASM and FIR for tests
...
^KT-45866 fixed
2021-04-07 18:13:07 +03:00
Ilya Goncharov
b82c9225c8
[IR] Fix copying of default argument from expect to actual with type parameter
...
^KT-45866 fixed
2021-04-07 18:13:06 +03:00
Abduqodiri Qurbonzoda
b0f1ddc91e
Advance max/min(By/With) deprecation level to ERROR
2021-04-07 07:49:23 +03:00
Abduqodiri Qurbonzoda
968099fbec
Advance deprecation level of FP to lesser than Int types to ERROR #KT-30360
2021-04-07 00:23:20 +03:00
Dmitry Petrov
120eba8d3d
Minor: add tests for KT-45893
2021-04-05 17:50:43 +03:00
Ilmir Usmanov
786999bcfe
Minor. Add regression tests
...
#KT-44143
2021-04-01 00:51:08 +03:00
Ilya Goncharov
47f1a8a0bb
[IR] Make IrTypeOperatorCall copyable
...
^KT-45655 fixed
2021-03-31 20:14:52 +03:00
Ilya Gorbunov
94240f7b21
Stabilize unsigned types KT-45653
...
Deprecate specialized unsigned iterators for removal.
Fix compiler tests:
- drop unsignedLiteralsOn1_2 because apiVersion 1.2 is no longer supported
- drop experimental unsigned literals diagnostic test
2021-03-31 19:05:04 +03:00
Dmitry Petrov
9bf7f3af04
JVM_IR KT-45697 reference classes from sources before IR generation
2021-03-31 16:40:49 +03:00
Denis.Zharkov
fa65081878
Revert "FIR2IR: minimize scope processing in fake override generation"
...
This reverts commit 9934cfbb00 .
See the tests added: Subclass may have private same-name method that
should not be a reason to avoid generating fake overrides
2021-03-31 15:57:03 +03:00
Denis.Zharkov
4d3825a824
FIR: Serialize members originated from delegation
2021-03-31 15:57:03 +03:00
Alexander Udalov
1f7cef6f13
Minor, add a bit more tests for KT-12063
2021-03-31 00:08:52 +02:00
pyos
85aa6383ad
JVM_IR: cast bound property receivers to original type
...
Because the receiver type is used for determining where to put
accessors, and the type of fake overrides' receivers is the same as for
the original declaration, casting to the type of the parameter leads to
assertion errors.
#KT-44658 Fixed
2021-03-30 23:09:28 +02:00