Dmitriy Novozhilov
22a4da024b
[FIR] Fix all illegal usages of symbol.fir in checkers module
2021-07-13 10:31:34 +03:00
Dmitriy Novozhilov
e94d75d433
[FIR] Add opt-in annotation which prevents from using symbol.fir
2021-07-13 10:31:32 +03:00
Dmitriy Novozhilov
c99a02796f
[FIR] Replace getContainingClass usages with getContainingClassSymbol
2021-07-13 10:31:31 +03:00
Dmitriy Novozhilov
48a25e2fe6
[FIR] Add some status utils over symbols to addition to utils over fir
2021-07-13 10:31:30 +03:00
Dmitriy Novozhilov
d3966e8844
[FIR] Add accessors to parts of signatures to symbols
2021-07-13 10:31:26 +03:00
Dmitriy Novozhilov
0f06ab537f
[FIR] Remove useSiteSession parameter from ensureResolved
2021-07-13 10:31:25 +03:00
Dmitriy Novozhilov
92cfaf68bb
[FIR] Remove unused FirFunctionSymbol.parameters
2021-07-13 10:31:24 +03:00
Dmitriy Novozhilov
9f161f16b3
[FIR] Move FirPhaseManager to :compiler:fir:tree
2021-07-13 10:31:21 +03:00
Dmitriy Novozhilov
51fc2e453f
[FIR] Unity FirCallableDeclaration and FirCallableMemberDeclaration
...
After removal of all diamonds in FirDeclaration hierarchy
FirCallableMemberDeclaration was only one inheritor of
FirCallableDeclaration, so there is no need to keep them both
2021-07-13 10:31:20 +03:00
Dmitriy Novozhilov
aa3a73c6c2
[FIR] Move JavaTypeEnhancementState to session component
2021-07-09 14:38:02 +03:00
Victor Petukhov
1224d28deb
Move java type enhancement stuff to :core:compiler.common.jvm
2021-07-09 13:22:02 +03:00
Andrey Zinovyev
de3f31cf78
[FIR] Partial implementation of DEPRECATION(_ERROR) diagnostics
...
No support for inheritance deprecations
and deprecations in qualifier's parts
2021-07-07 16:19:28 +03:00
Ilya Kirillov
51576c70b6
FIR: introduce package directive
...
The package directive is needed for KtElement -> FirElement mapping in IDE.
There should be some FirElement which will be result of mapping of elements
inside KtPackageDirective.
2021-07-06 22:49:50 +03:00
Mikhail Glukhikh
bf40c07cc3
FIR: drop questionable DiagnosticKind.NotRootCause
2021-07-06 18:43:16 +03:00
Tianyu Geng
31573a98e8
FIR checker: report EXPECTED_CONDITION
2021-07-06 18:27:23 +03:00
Victor Petukhov
18384788a4
Move type enhancement state stuff into core:descriptors.jvm
2021-07-06 09:54:29 +03:00
Victor Petukhov
46d0b16142
Use new default settings for java nullability annotations in JavaTypeEnhancementState and get rid of all hardcoded defaults
2021-07-06 09:54:24 +03:00
Jinseong Jeon
64a275cf83
FIR: fix type comparator
...
As many other places did, this one is supposed to return the diff value
if the given two intersection types' sizes are different.
2021-07-05 18:32:33 +03:00
Dmitriy Novozhilov
1593c4859d
[FIR] Get rid of all conditional reads of FirDeclaration.resolvePhase
2021-07-04 13:29:03 +03:00
Denis.Zharkov
a77cbb8f63
FIR: Rework FirNotImplementedOverrideChecker around delegated members reporting
2021-07-01 17:49:30 +03:00
Ivan Kochurkin
9f7a8c3948
[FIR] Implement ILLEGAL_SELECTOR
2021-06-29 22:39:23 +03:00
Ivan Kochurkin
a7276b25ae
[FIR] Add expression field to FirErrorExpression
...
It is used to report diagnostics even in erroneous code (within ILLEGAL_SELECTOR for instance).
2021-06-29 22:39:22 +03:00
Dmitriy Novozhilov
5816d7ae9f
[FIR] Rename FirStatusOwner back to FirMemberDeclaration
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
f400477c70
[FIR] Remove generic parameter from FirDeclaration
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
511e564b20
[FIR] Add specific symbols for value parameters and enum entries
...
Make FirVariableSymbol a sealed class
2021-06-29 21:03:30 +03:00
Dmitriy Novozhilov
62d781a70f
[FIR] Move delegateFieldSymbol from FirVariable to FirProperty
2021-06-29 21:03:30 +03:00
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