Ilya Kirillov
4b7cacd55e
[FIR] do not ignore nested type aliases in FirNestedClassifierScope
2022-11-11 12:00:01 +01:00
pyos
e7b4927b6c
FIR: don't emit SENSELESS_NULL_IN_WHEN when value is always null
...
This case (value is always null) contradicts the error message which says
"Expression under 'when' is never equal to null".
2022-11-10 13:10:58 +00:00
pyos
fbb54f0300
FIR: fix Clonable detection condition in inline checker
2022-11-10 11:34:53 +01:00
Mads Ager
636024f676
[JVM] Retain deprecated status for interface companion const property.
...
Create the field directly and maintain the fact that its corresponding
property is the companion object property. That property has the
deprecated annotation which puts the deprecated marker on the field
when code generating the field.
^KT-54840 Fixed
2022-11-09 23:15:31 +01:00
Xin Wang
7b3ce35613
JVM_IR: Prevent writing output after an error is reported
...
#KT-53825 Fixed
2022-11-09 23:14:11 +01:00
Pavel Mikhailovskii
252e97663b
KT-54784 Fix function inlining in init sections
2022-11-09 17:15:37 +00:00
Sergej Jaskiewicz
7b7c517dbb
[JS IR] Emit original names for local vars to sourcemaps
...
#KT-35655 Fixed
2022-11-09 12:35:44 +00:00
Anna Kozlova
79bed083e6
[FIR] allow primary constructors in interfaces to support invalid code
...
KTIJ-23504
2022-11-08 14:51:33 +01:00
Alexander Udalov
d7a58a7c6c
Keep track of array types in OptimizationBasicInterpreter
...
Merging array types with different element types, for example
`[Lj/l/String;` and `[Lj/l/Object;`, now produces `[Lj/l/Object;`
(instead of `Lj/l/Object;`), which allows for more precise tracking of
null values because we assume that AALOAD on a non-array typed value is
possible only if that value is null.
#KT-54802 Fixed
2022-11-07 17:22:38 +01:00
Alexander Korepanov
d5e9e87538
[JS BE] Drop JS scripting support
...
JS scripting uses the old IR to JS transformer.
The new IR to JS transformer can not be used for
JS scripting out of the box. Patching the new transformer for
JS scripting is potentially dangerous and requires a lot of effort.
Dropping JS scripting and the old IR to JS transformer allows to
refactor and simplify JS BE codebase.
2022-11-04 14:15:15 +00:00
pyos
20871dd555
FIR DFA: update assignment indices when joining flows
2022-11-03 13:33:11 +00:00
pyos
639a454d6c
FIR DFA: when joining flows, clear reassigned vars with no statements
...
For example:
val c = C("...")
val x = c.x // alias to variable for c.x, which depends on c
if (x == null) return
// now c.x has type Any
c = C(null)
// c has been reassigned => info for c.x is no longer valid;
// c itself has never had any statements made about it, but
// we must still call removeAllAboutVariable to clear the
// dependents
2022-11-03 13:33:10 +00:00
pyos
0781cd12d4
FIR DFA: copy logic statements to aliases before removing variables
...
^KT-54744 Fixed
2022-11-03 13:33:09 +00:00
pyos
31eaa211b7
Add test for KT-54744
2022-11-03 13:33:09 +00:00
Dmitriy Novozhilov
2fd8bf9153
[FIR] Don't analyze lambda twice inside delegate inference
...
This is a workaround for ^KT-54767
2022-11-03 08:30:09 +00:00
Dmitriy Novozhilov
7af43176ce
[FIR] Add optin on API of updating type of receiver values. KT-54708
2022-11-03 08:30:09 +00:00
Dmitriy Novozhilov
e6ce008415
[FIR] Ignore leaked internal types because of KT-54568
2022-11-03 08:30:09 +00:00
Dmitriy Novozhilov
089d907fd4
[FIR] Ignore leaked internal types because of KT-54517
2022-11-03 08:30:08 +00:00
Dmitriy Novozhilov
22c21ca4df
[FIR] Replace uninferred type variables and stub types during delegate inference
2022-11-03 08:30:07 +00:00
Sergej Jaskiewicz
ba7f5afebe
[JS IR] Generate debug info for catch parameters
...
We will need it to generate original names for catch parameters in
sourcemaps.
Also, don't generate redundant debug info for compiler-generated
exception handling control flow operators.
See the doc comment to the MultipleCatchesLowering class
#KT-46276
2022-11-02 13:14:01 +00:00
Sergej Jaskiewicz
4ae03ea74a
[JS IR] Improve debug info for if and when statements
...
#KT-46276
2022-11-02 13:14:01 +00:00
Sergej Jaskiewicz
ccbb2a08a0
[JS IR] Improve debug info for functions with default parameters
...
Don't generate unnecessary mappings so that the user doesn't need to
step in many times to get where they want
#KT-46276
2022-11-02 13:14:00 +00:00
Sergej Jaskiewicz
512a2bfd7a
[JS IR] Improve debug info for callable references and lambdas
...
#KT-46276
2022-11-02 13:13:59 +00:00
Sergej Jaskiewicz
fe0e9db3aa
[JS IR] Generate debug info for JS switch statements
...
#KT-46276
2022-11-02 13:13:59 +00:00
Sergej Jaskiewicz
b2b7958b62
[JS IR] Generate debug info for secondary constructors
...
#KT-46276
2022-11-02 13:13:58 +00:00
Sergej Jaskiewicz
ec18dce7cb
[JS IR] Improve debug info for suspend functions
...
- Map generated explicit Unit returns to the closing brace of
the original body
- Name the continuation parameter as `$completion` to match the JVM BE,
and generate debug info for it (so that it appears in the 'names'
array in sourcemaps)
- Don't generate debug info for coroutine instantiation ceremony
(so that the user doesn't need to step in many times to get where they
want)
#KT-46276
2022-11-02 13:13:58 +00:00
Xin Wang
4d9c2d3d14
Don't treat java constructor as 'hidden' one
...
Fix KT-54656
2022-11-02 12:56:38 +01:00
pyos
7787638737
FIR: fix substitution of anonymous type's supertype again
...
^KT-51418 Fixed
2022-11-01 15:28:41 +00:00
Igor Yakovlev
033e2c45f1
[WASM] Caching string literals in global pool
2022-11-01 13:15:09 +00:00
Denis.Zharkov
f95bfccf59
K1: Prolong deprecation for KT-46727
...
The language committee ticket has not yet been prepared
2022-11-01 12:03:26 +00:00
Alexander Udalov
3d00c173f3
Fix binary compatibility for inlined local delegated properies
...
#KT-54650 Fixed
2022-11-01 12:34:33 +01:00
Alexander Udalov
54ab66cd4e
Add regression test for KT-54707
2022-11-01 11:24:03 +01:00
Ilya Goncharov
372a512c91
[JS IR] Add case with bridge for method with default parameters
2022-10-31 16:08:24 +00:00
Denis.Zharkov
82100a414f
FIR: Preserve K1 behavior for rawTypeValue ?: nothingTypedValue
...
It's been approximated to the non-raw version back then
^KT-54526 Fixed
2022-10-31 14:28:56 +00:00
Denis.Zharkov
52eb535a7d
FIR: Use platform specific overridability rules for platform members
...
^KT-54570 Fixed
2022-10-31 14:28:55 +00:00
Denis.Zharkov
1e368bcd86
FIR: Allow to skip specifying type arguments for members from raw type
...
^KT-54666 Fixed
^KT-54526 Related
2022-10-31 14:28:54 +00:00
Denis.Zharkov
c0e0900344
FIR: Preserve K1 behavior for synthetic properties on raw type
...
^KT-54502 Fixed
2022-10-31 14:28:53 +00:00
Denis.Zharkov
7b15b28ee2
FIR: Properly support raw types in type parameter upper bounds
...
^KT-49345 Fixed
2022-10-31 14:28:52 +00:00
Denis.Zharkov
5cc31114cd
FIR: Support special scope for raw types
...
^KT-46369 Fixed
^KT-41794 Fixed
^KT-49351 Fixed
2022-10-31 14:28:50 +00:00
Pavel Mikhailovskii
1215ae0fe7
KT-1436 Nicer compiler errors when the feature isn't supported
2022-10-31 13:49:57 +00:00
Alexey Belkov
2036b65b78
K1: render receiver DNN type as parenthesized
...
^KTIJ-20849
2022-10-28 12:52:22 +04:00
Jinseong Jeon
8d8d0d9922
SLC: add marker interface for collection inheritor
2022-10-27 14:41:24 +02:00
Sergej Jaskiewicz
b429e2f34f
Remove a test that doesn't make sense anymore
2022-10-27 11:28:01 +00:00
Sergej Jaskiewicz
6a40a7e471
[JS IR] Don't forget to enable lazy property initialization
2022-10-27 11:27:59 +00:00
Dmitriy Novozhilov
6bc952adff
[Test] Add test for KT-54663
2022-10-27 11:08:56 +00:00
Dmitriy Novozhilov
b7da00744b
[FIR] Consider overridden getter for setter function for synthetic property
...
^KT-54662 Fixed
2022-10-27 11:08:55 +00:00
Dmitriy Novozhilov
1927369ae9
[Test] Add test for KT-54662
2022-10-27 11:08:55 +00:00
Dmitriy Novozhilov
027b1f861c
[FIR] Update return type of delegated callables in ReturnTypeCalculator
...
^KT-54654 Fixed
2022-10-27 11:08:55 +00:00
Dmitriy Novozhilov
f441151eab
[FIR] Fix order of supertype scopes for supertypes of companion object
...
^KT-54645 Fixed
2022-10-27 11:08:54 +00:00
Dmitriy Novozhilov
d54503e66c
[Test] Add test for KT-54645
2022-10-27 11:08:54 +00:00