Dmitriy Novozhilov
dc3ee6318c
[FIR] Rename type parameters of NullableMap from KEY, VALUE to K, V
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
6c8096643c
[FIR] Move danglingConstraints attribute to other attributes
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
eca77324e0
[FIR] Move declaration comparators to separate package
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
725be466f0
[FIR] Move declaration utils to separate package
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
10ff0975bc
[FIR] Split FirDeclarationUtil.kt to multiple files
2021-06-29 21:03:29 +03:00
Dmitriy Novozhilov
1324e9223f
[FIR] Make FirDeclaration an abstract class
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
b3e5c6e079
[FIR] Add symbol to all declarations. Get rid of FirSymbolOwner
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
39cd1c8504
[FIR] Squash AbstractFirBasedSymbol with FirBasedSymbol
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
823cbc59b7
[FIR] Split FirAnonymousFunction to expression and declaration
2021-06-29 21:03:28 +03:00
Dmitriy Novozhilov
85b844c748
[FIR] Split FirAnonymousObject to expression and declaration
2021-06-29 21:03:27 +03:00
Tianyu Geng
2e049c1208
FIR DFA: fix CFG with normal arg after lambda [KT-46825]
...
The fix is a bit hacky, but it's very simple. In addition, it still does
not handle the case where the receiver is a lambda function. But such
case seems to be fairly rare in practice.
2021-06-29 10:46:41 +03:00
Tianyu Geng
0ecc752813
FIR checker: report SMARTCAST_IMPOSSIBLE for local variables
2021-06-29 10:46:38 +03:00
Tianyu Geng
84f8d4d315
FIR IDE: handle reference to package and outer classes
...
For a qualified name like `foo.bar.Outer.Inner`, FIR represents it as
one atomic FIR element. Hence, to properly resolve these names to the
corresponding package and class, we need some additional work.
2021-06-24 18:27:51 +02:00
Tianyu Geng
a537074e1e
FIR: add a boolean tracking if a class ref resolves to the companion object
2021-06-24 18:27:50 +02:00
Tianyu Geng
6ec247b861
FIR: accept when(nothing) {} as exhaustive
...
FE1.0 accepts this but FIR current rejects it.
2021-06-24 18:26:17 +02:00
Mark Punzalan
578fcf2ebf
FIR: Render fun status flag in FirRenderer.
2021-06-21 18:45:38 +03:00
Mark Punzalan
efe3f7b87e
FIR: Do not load inline flag when deserializing properties; there is
...
no `inline` flag for serialized properties.
In order to test this, I added the changes to FirRenderer to make sure
the flag is not loaded. However, this revealed that the `inline` status
was propagated upward to the `FirProperty` during raw FIR building,
causing test failures.
I removed the upward propagation for `inline`. I also removed it for
`external` because it is incorrect: `external` on properties (used in
JS) should be separate from `external` on accessors (used in JNI
interop for JVM). The `external` flags are also serialized separately
for properties and accessors.
2021-06-21 18:45:37 +03:00
Dmitriy Novozhilov
a288b8b00e
[FIR] Remove useless type parameters from classes related to diagnostics
...
Generics removed from:
- FirPsiSourceElement
- FirDiagnostic
- FirDiagnosticRenderer
- FirDiagnosticFactory
2021-06-21 13:13:17 +03:00
Igor Yakovlev
2319a53fae
[FIR] Fixed invalid phase for values value parameter
2021-06-19 19:23:23 +02:00
Igor Yakovlev
f98995f6cb
[FIR IDE] Implement lazy designated resolve for all resolve FIR phases
2021-06-19 19:23:21 +02:00
Ivan Kochurkin
a0aaf42fb1
Some string and minor optimizations
2021-06-17 13:49:08 +03:00
Mikhail Glukhikh
bd39e457a7
FIR: make ArrayMapOwner.arrayMap really protected
2021-06-11 22:03:32 +03:00
Tianyu Geng
78401b3ae0
FIR: add helper to check if a smartcast expressioin is stable
2021-06-10 16:01:16 +03:00
Tianyu Geng
3c8693758b
FIR: handle synthetic properties with unstable smartcast
...
Synthetic properties from Java getter/setters need to be specially
handled so that candidates from such symbols are marked with unstable.
2021-06-10 16:01:14 +03:00
Tianyu Geng
ce767046eb
FIR checkers: report SMARTCAST_IMPOSSIBLE
2021-06-10 16:01:13 +03:00
Tianyu Geng
2bb7ef9747
FIR DFA: store stability in RealVariable
...
As part of this change, we also extend the usage of RealVariable in more
places during DFA. Now mutable properties, property with custom getters,
delegated properties, etc are also treatd as a `RealVariable`. In
general this is needed in order to carry out smartcast computation in
order to report `SMARTCAST_IMPOSSIBLE`. It seems to also have side
effects that improves behavior of some test files.
2021-06-10 16:01:11 +03:00
Tianyu Geng
97ea37c82f
FIR: add smartcast stability to FIR
2021-06-10 16:01:09 +03:00
Nikolay Krasko
32f811e0ec
Build: Cleanup old platforms from the build
2021-06-09 17:43:53 +03:00
Tianyu Geng
32f55a2269
FIR checker: report VIRTUAL_MEMBER_HIDDEN
2021-06-09 16:27:49 +03:00
Mikhail Glukhikh
c33608e009
FIR: don't render resolved type annotations in favor of attributes
2021-06-09 15:42:43 +03:00
Mikhail Glukhikh
77dd0ad396
FIR: handle custom attributes more precise
2021-06-09 15:42:37 +03:00
Mikhail Glukhikh
fa307a5f75
Drop LocalCallableIdConstructor OptIn-annotation
2021-06-08 11:37:24 +03:00
Andrey Zinovyev
bf153ab0f0
[FIR] Implement CANNOT_ALL_UNDER_IMPORT_FROM_SINGLETON diagnostic
2021-06-08 08:18:54 +00:00
Ivan Kochurkin
c4c2fbb5a0
[FIR] Implement RECURSIVE_TYPEALIAS_EXPANSION, CYCLIC_INHERITANCE_HIERARCHY diagnostics, fix stackoverlow exception in case if typealias points to type with type arguments
2021-06-03 20:41:58 +03:00
Dmitriy Novozhilov
6f54e9fd5c
Revert "FIR: add smartcast stability to FIR"
...
This reverts commit 96bd2c54
2021-06-03 09:54:02 +03:00
Dmitriy Novozhilov
0497f60af3
Revert "FIR DFA: store stability in RealVariable"
...
This reverts commit 62f7e8f7
2021-06-03 09:53:57 +03:00
Dmitriy Novozhilov
796f8e6bce
Revert "FIR checkers: report SMARTCAST_IMPOSSIBLE"
...
This reverts commit 84334b08
2021-06-03 09:48:50 +03:00
Tianyu Geng
84334b087c
FIR checkers: report SMARTCAST_IMPOSSIBLE
2021-06-02 13:19:12 +03:00
Tianyu Geng
62f7e8f71f
FIR DFA: store stability in RealVariable
...
As part of this change, we also extend the usage of RealVariable in more
places during DFA. Now mutable properties, property with custom getters,
delegated properties, etc are also treatd as a `RealVariable`. In
general this is needed in order to carry out smartcast computation in
order to report `SMARTCAST_IMPOSSIBLE`. It seems to also have side
effects that improves behavior of some test files.
2021-06-02 13:19:12 +03:00
Tianyu Geng
96bd2c54f0
FIR: add smartcast stability to FIR
2021-06-02 13:19:12 +03:00
Andrey Zinovyev
617d99faac
[FIR] Don't keep ref to whole class proto
...
Store module name only
2021-05-21 12:49:59 +03:00
Andrey Zinovyev
a121061df7
[FIR] Get module name for deserialized fir2ir classes
2021-05-21 12:49:58 +03:00
Dmitriy Novozhilov
3fc7e0ed03
[FIR] Remove COMPARE_WITH_LIGHT_TREE from default directives of fir diagnostic tests
2021-05-20 20:20:40 +03:00
Denis.Zharkov
42d387925d
FIR: Refine makesSenseToBeDefinitelyNotNull
...
Make it work just the same as the analogue from FE 1.0
This change is necessary since many tests start failing after
we began reporting diagnostics after call completion
2021-05-20 17:24:12 +03:00
Jinseong Jeon
f0f1e2d945
FIR checker: report CAPTURED_VAL_INITIALIZATION
2021-05-20 13:59:13 +03:00
Andrey Zinovyev
d38effcbbe
Use camel-case in FirFunctionCallOrigin
...
Also componentCall is operator call
2021-05-20 13:46:35 +03:00
Andrey Zinovyev
07a8ae7e71
[FIR] Mark more calls origin as OPERATOR
2021-05-20 13:46:32 +03:00
Andrey Zinovyev
b1c8669b43
[FIR] Resolve infix calls to infix functions only
...
Implements INFIX_MODIFIER_REQUIRED diagnostics
2021-05-20 13:46:27 +03:00
Ivan Kochurkin
c3b8f3e859
[FIR] Add lValueTypeRef to FirVariableAssignment, fix tests with ASSIGNMENT_TYPE_MISMATCH
2021-05-17 22:33:18 +03:00
Dmitriy Novozhilov
cf5af0f7ea
[FIR] Add KDoc to FirModuleData
2021-05-14 14:30:42 +03:00