pyos
6a2d74e211
FIR DFA: generate type implications on all null comparisons
2022-11-22 15:44:28 +00:00
pyos
2ae06a8d46
FIR DFA: when removing a variable, move type statements about dependents
...
val c = C("...")
val d = c
if (c.x == null) return
c.x.length // c.x has type String
d.x.length // d.x -> c.x through d -> c
c = C(null) // remove alias d -> c
d.x.length // info from c.x moved to d.x
^KT-54824 Fixed
2022-11-22 15:44:26 +00:00
pyos
ceb1607057
FIR DFA: when breaking aliasing, keep the rest of the group together
...
var a = ...
var b = a
var c = a
a = ...
// b and c still aliased
2022-11-22 15:44:25 +00:00
pyos
33363ba1fc
Add more variable aliasing tests
2022-11-22 15:44:23 +00:00
Nikolay Lunyak
c5469d5fb5
[FIR] KT-53988: Report ILLEGAL_SELECTOR for constants as selectors
...
Merge-request: KT-MR-7756
Merged-by: Nikolay Lunyak <Nikolay.Lunyak@jetbrains.com >
^KT-53988 Fixed
2022-11-22 10:54:09 +00:00
Anna Kozlova
702d0b4d54
[compiler] missed type parameters in local properties (KTIJ-23583)
...
even though local variables won't contain type parameters,
let's build fir for them
2022-11-22 10:47:45 +00:00
Anna Kozlova
3fdd0aacd3
[compiler] preserve fir receiver in tree
...
when selector is invalid expression,
ensure that fir tree still contains receiver as well as selector
KTIJ-23578
2022-11-22 10:46:59 +00:00
Ilya Kirillov
b6481ed891
[FIR] do not use FirValueParameter for function type parameter
...
As it is a different abstraction, introduced FirFunctionTypeParameter instead
Also, fix syntax checkers for function type parameter
^KT-55035 fixed
2022-11-21 16:17:51 +00:00
Mikhail Glukhikh
82f1535007
K1: fix IIOBE in expect-actual checker with different type parameter number
...
#KT-54827 Fixed
2022-11-17 22:28:04 +00:00
vladislav.grechko
36b8ba8df3
Improve support of custom equals in inline classes
...
- Ensure that typed equals parameter's type is a star projection of
corresponding inline class
- Make possible to declare typed equals that returns 'Nothing'
- Forbid type parameters in typed equals operator declaration
^KT-54909 fixed
^KT-54910 fixed
2022-11-17 15:35:14 +01:00
Anna Kozlova
c727dbb8ca
[fir compiler] ensure type parameters are included in the resolve scope
...
to resolve the next parameter bounds (KTIJ-23674)
2022-11-16 22:25:02 +00:00
Mikhail Glukhikh
ac514849f4
K1: add deprecation for implicit non-public calls #KT-54762 Fixed
2022-11-16 12:27:12 +00:00
Denis.Zharkov
2953e600ff
K1: Deprecate incorrect callable references resolution behavior
...
^KT-54316 Related
^KT-54832 Fixed
2022-11-15 15:06:58 +00:00
Nikolay Lunyak
267ce1d892
[FIR] KT-54220: Don't crash on unsigned integers when no stdlib present
...
^KT-54220 Fixed
2022-11-15 09:02:33 +02:00
Ilya Chernikov
5b3816cce5
Test infra: refactor IGNORE_BACKEND directive
...
treat it as a general one, introduce *_K1 and *_K2 variants for
more specific ignoring
2022-11-12 16:28:23 +01:00
Mikhail Glukhikh
f070401bb5
K2: fix visibility checks for static overrides via imported from static
...
#KT-53441 In Progress
2022-11-11 13:30:35 +00:00
Yan Zhulanow
61ce9fe524
[FE] Fix source element duplication in object literal expressions
2022-11-11 11:28:35 +00:00
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
Anna Kozlova
79bed083e6
[FIR] allow primary constructors in interfaces to support invalid code
...
KTIJ-23504
2022-11-08 14:51:33 +01: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
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
22c21ca4df
[FIR] Replace uninferred type variables and stub types during delegate inference
2022-11-03 08:30:07 +00:00
pyos
7787638737
FIR: fix substitution of anonymous type's supertype again
...
^KT-51418 Fixed
2022-11-01 15:28:41 +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
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
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
Mikhail Glukhikh
50cd560d09
K1: add more tests for BI assignment checker, fix corner cases
...
Related to KT-54004
2022-10-26 09:21:49 +00:00
Mikhail Glukhikh
8e48636b29
K1: don't report assignment TYPE_MISMATCH in BI under feature ON
...
Related to KT-54004
2022-10-26 09:21:48 +00:00
pyos
6c6d653e85
FE: don't lose annotations on Java primitive arrays
...
but only use them to enhance for warnings for now.
^KT-48861 Fixed
2022-10-26 09:33:40 +02:00
Mikhail Glukhikh
80fa765333
K1: introduce synthetic assignment checker with deprecation for KT-54305
...
#KT-54305 Fixed
Related to KT-54309
2022-10-25 12:33:09 +00:00
Mikhail Glukhikh
7bd512fbb3
FE: add test for KT-54305
2022-10-25 12:33:08 +00:00
Ivan Kylchik
5b16b2c71e
Properly verify args in string concatenation expression for interpreter
...
If string concatenation contains object value, then this argument
will not have explicit toString call. We must find and check toString
method manually.
#KT-54615
2022-10-24 13:14:16 +00:00
Artem Kobzar
14e4febb05
[K/JS] Exclude default from the regular reserved keywords to give ability to export declarations with default export ^KT-54480 Fixed
...
fix(KT-54480): exclude default from the regular reserved keywords to give ability to export intities with default export.
Merge-request: KT-MR-7459
Merged-by: Artem Kobzar <Artem.Kobzar@jetbrains.com >
2022-10-24 10:12:30 +00:00
Mikhail Glukhikh
5347c3c7cc
FE: add test for KT-53408 to have stable behavior here
2022-10-20 13:27:04 +02:00
Dmitriy Novozhilov
248c45acb3
[FIR] Properly set resolvedToCompanionObject field for lhs of GetClassCall
...
^KT-54209 Fixed
2022-10-19 11:09:32 +00:00
Dmitriy Novozhilov
55aae5325c
[Test] Add test for KT-54209
2022-10-19 11:09:32 +00:00