Mikhail Glukhikh
10ffdab438
Analysis API FIR: fix isDefaultEnumEntryMember
2022-08-12 09:35:31 +00:00
Mikhail Glukhikh
41b73abc49
Analysis API FIR: fix exception in LC support for Enum.entries property
2022-08-12 09:35:30 +00:00
Mikhail Glukhikh
d7c0b1b620
PSI2IR: don't create Enum.entries in IR without the corresponding feature
2022-08-12 09:35:29 +00:00
Mikhail Glukhikh
2ba22b9165
FIR2IR: don't create Enum.entries in IR without the corresponding feature
2022-08-12 09:35:28 +00:00
Mikhail Glukhikh
3079be75d4
K2: don't filter Enum.entries depending on language settings
2022-08-12 09:35:28 +00:00
Mikhail Glukhikh
7333589663
K1/K2: add Enum.entries unconditionally and filter them out in tower
...
Before this commit, we added Enum.entries only in case when
LanguageFeature.EnumEntries was ON (with an exception in K1/Java case).
In this commit we add Enum.entries unconditionally, and in case
the language feature is OFF we filter them out during tower resolve.
2022-08-12 09:35:27 +00:00
Mikhail Glukhikh
3a2d69225c
K1: add support for Enum.entries in Java scopes
2022-08-12 09:35:25 +00:00
Mikhail Glukhikh
12e8b1d844
K1: add support for Enum.entries synthetic property (see KT-48872)
...
#KT-53270 Fixed
2022-08-12 09:35:24 +00:00
Mikhail Glukhikh
cb1123cccd
OptInUsageChecker: restore public API isOptInAllowed method
2022-08-11 14:05:10 +00:00
Mikhail Glukhikh
81e1131441
SubclassOptInRequired: add extra test about inheritance and superseding
2022-08-11 14:05:09 +00:00
Mikhail Glukhikh
80a9f22052
Add applicability checks & tests for SubclassOptInRequired
2022-08-11 14:05:09 +00:00
Mikhail Glukhikh
66e710704a
Protect SubclassOptInRequired with opt-in marker
2022-08-11 14:05:09 +00:00
Mikhail Glukhikh
76aaecbdf0
Add/fix extra cases for #KT-41886 Fixed
2022-08-11 14:05:08 +00:00
Mikhail Glukhikh
7d3368da58
K2: report errors related to SubClassOptInRequired annotation
...
Related to KT-41886
2022-08-11 14:05:08 +00:00
Mikhail Glukhikh
c67c5cad27
K1: report errors related to SubClassOptInRequired annotation
...
Related to KT-41886
2022-08-11 14:05:07 +00:00
Mikhail Glukhikh
84291181af
K1: drop redundant OptIn check for expanded type
2022-08-11 14:05:07 +00:00
Mikhail Glukhikh
3f96626b40
Introduce SubclassOptInRequired annotation (see KT-41886)
2022-08-11 14:05:06 +00:00
Mikhail Glukhikh
2598ecf23f
Revert "K2: fix internal visibility checks for overrides #KT-53197 Fixed"
...
This reverts commit 166965e559 .
2022-08-05 18:26:59 +02:00
Mikhail Glukhikh
166965e559
K2: fix internal visibility checks for overrides #KT-53197 Fixed
2022-08-03 07:52:14 +00:00
Mikhail Glukhikh
3cb4b8ddda
Fix KotlinTypeCheckerTest in accordance with NI intersections
2022-08-02 10:29:41 +00:00
Mikhail Glukhikh
187fe6d50a
K1: fix error message of EXPECTED_PARAMETER_TYPE_MISMATCH(_WARNING)
2022-08-01 17:00:19 +02:00
Mikhail Glukhikh
91f3edc6a6
K1: add protection against exceptions possible in IDE partial resolve
...
IDE partial resolve allows to drop some statements from resolve,
in particular it can drop some lambda. However, this can lead to the
situation when we have no descriptor for lambda or to incorrect
type checks for its containing block. This commit protects about
this situation
2022-07-27 16:48:38 +00:00
Mikhail Glukhikh
3e58c54da9
Add docs to CandidateApplicability, remove DSL_SCOPE_VIOLATION
2022-07-27 15:29:48 +00:00
Mikhail Glukhikh
d0c518013a
Document&use CandidateApplicability.shouldStopResolve/isSuccess properly
2022-07-27 15:29:47 +00:00
Mikhail Glukhikh
010d5b76e5
Temporary fix for K2/JS tests
2022-07-27 15:29:46 +00:00
Mikhail Glukhikh
220a8e47f4
K2: de-prioritize invoke on dynamic receiver
2022-07-27 15:29:45 +00:00
Mikhail Glukhikh
766d873271
FIR2IR: fix case with extension called on dynamic
2022-07-27 15:29:45 +00:00
Mikhail Glukhikh
0611f3b8e7
CandidateApplicability: add K1/K2 prefixes when applicable
2022-07-27 15:29:44 +00:00
Mikhail Glukhikh
8e9e8302f7
CandidateApplicability: merge INAPPLICABLE_MODIFIER into CONVENTION_ERROR
2022-07-27 15:29:43 +00:00
Mikhail Glukhikh
577b9686c1
K2: fix using compatibility resolve for SAM constructors
2022-07-27 15:29:42 +00:00
Mikhail Glukhikh
32a73968de
Stop tower resolve in K2 in more similar manner with K1
2022-07-27 15:29:41 +00:00
Mikhail Glukhikh
3ae75a5094
FIR2IR: generate annotations on fake override parameters #KT-53208 Fixed
2022-07-22 16:39:52 +00:00
Mikhail Glukhikh
5445f4043a
K2: expand types during smartcasting to prevent redundant intersections
...
#KT-53184 Fixed
2022-07-22 16:39:52 +00:00
Mikhail Glukhikh
bc396b9765
K2: don't report RETURN_TYPE_MISMATCH on last statement returns
...
#KT-53198 Fixed
2022-07-22 16:39:51 +00:00
Mikhail Glukhikh
0bd06b4095
K1: unify code around resolveCallWithGivenDescriptors
2022-07-22 16:03:54 +00:00
Mikhail Glukhikh
ec055eb418
K1: cleanup new inference constructor resolve in CallResolverUtil
2022-07-22 16:03:54 +00:00
Mikhail Glukhikh
e20efc1398
K1: don't report UNRESOLVED_WITH_TARGET on hidden setters
2022-07-22 16:03:53 +00:00
Mikhail Glukhikh
78da5907c8
K2 checkers: separate report committer from other diagnostic components
2022-07-22 11:35:28 +00:00
Mikhail Glukhikh
eba0e94429
K2: get rid of manual diagnostic suppression in checkers
2022-07-22 11:35:28 +00:00
Mikhail Glukhikh
07f16ef378
K2 LL API: implement automatic diagnostic suppression
2022-07-22 11:35:27 +00:00
Mikhail Glukhikh
9add6f3d55
K2: add more accurate & more automatic control of diagnostic suppression
...
#KT-51363 Fixed
2022-07-22 11:35:26 +00:00
Mikhail Glukhikh
179b267d9f
K2: add test with some samples of diagnostic suppression
2022-07-22 11:35:25 +00:00
Mikhail Glukhikh
623f832bfd
FIR: fix private-to-this corner case with outer class type parameter
...
Related to KT-49875
2022-07-15 07:57:42 +00:00
Mikhail Glukhikh
d16e5e5e50
FIR: Support checking PRIVATE_TO_THIS visibility #KT-49875 Fixed
2022-07-15 07:57:41 +00:00
Mikhail Glukhikh
83200f8774
FIR: Support inferring PRIVATE_TO_THIS visibility see KT-49875
2022-07-15 07:57:41 +00:00
Mikhail Glukhikh
13713323cf
Make FirRenderer inherit FirRendererComponents instead of FirPrinter
...
#KT-53024 Fixed
2022-07-14 09:38:46 +00:00
Mikhail Glukhikh
7ce5100946
FirRenderer: slightly change/refactor declaration rendering
2022-07-14 09:38:45 +00:00
Mikhail Glukhikh
ac34fe3306
FirRenderer: code cleanup & move parts to contract renderer
2022-07-14 09:38:44 +00:00
Mikhail Glukhikh
801426d0e6
Simplify creation of FirRenderer
2022-07-14 09:38:44 +00:00
Mikhail Glukhikh
f9fdb5d3bc
Extract separate FirResolvePhaseRenderer
2022-07-14 09:38:43 +00:00
Mikhail Glukhikh
42b3adf33a
Extract separate ConeIdRenderer and get rid of FirRenderer.RenderMode
2022-07-14 09:38:42 +00:00
Mikhail Glukhikh
e484a4a946
Make ConeContractRenderer a renderer component
2022-07-14 09:38:41 +00:00
Mikhail Glukhikh
31a46866b6
Extract separate FirPropertyAccessorRenderer
2022-07-14 09:38:41 +00:00
Mikhail Glukhikh
9f1f777e0d
Extract separate FirValueParameterRenderer
2022-07-14 09:38:40 +00:00
Mikhail Glukhikh
76d5d3a2ec
Extract separate FirModifierRenderer
2022-07-14 09:38:39 +00:00
Mikhail Glukhikh
3fe35e6997
Extract separate FirCallArgumentsRenderer
2022-07-14 09:38:39 +00:00
Mikhail Glukhikh
abfa33b200
Get rid of mode argument in FirElement.render(withType)
2022-07-14 09:38:38 +00:00
Mikhail Glukhikh
7c27e6f843
FirRenderer: partially get rid of RenderMode
2022-07-14 09:38:37 +00:00
Mikhail Glukhikh
9890066b72
Extract separate FirPackageDirectiveRenderer
2022-07-14 09:38:36 +00:00
Mikhail Glukhikh
bc49107d25
Extract separate FirDeclarationRenderer
2022-07-14 09:38:36 +00:00
Mikhail Glukhikh
5bb4a0ccda
FirRenderer: drop effectively unused renderDeclarationOrigin parameter
2022-07-14 09:38:35 +00:00
Mikhail Glukhikh
089044e5b0
FirRenderer: get rid of direct Visitor usages
2022-07-14 09:38:34 +00:00
Mikhail Glukhikh
998ed8849f
FirRenderer: drop effectively unused renderLambdaBodies parameter
2022-07-14 09:38:34 +00:00
Mikhail Glukhikh
a82baf87cb
FIR renderer: extract separate ConeTypeRenderer
2022-07-14 09:38:33 +00:00
Mikhail Glukhikh
591143be7c
FIR renderer: introduce separate body & annotation renderers
2022-07-14 09:38:32 +00:00
Mikhail Glukhikh
f64a7d3ff9
FirRenderer: extract separate printer & visitor
2022-07-14 09:38:32 +00:00
Mikhail Glukhikh
38d6f3d548
Move FirRenderer to separate package
2022-07-14 09:38:31 +00:00
Mikhail Glukhikh
475e40b3e4
K1: report warning for inline virtual member in enum #KT-53148 Fixed
...
Related to KT-34372
2022-07-14 07:59:33 +00:00
Mikhail Glukhikh
70e15b281c
K2: fix exception in deserializer for external setter #KT-53031 Fixed
2022-07-13 17:06:14 +00:00
Mikhail Glukhikh
7bbd8d3b95
FIR2IR entry points: don't create JvmDescriptorMangler if not needed
2022-07-13 13:11:49 +00:00
Mikhail Glukhikh
1a45284e86
Drop some unused from symbol table / IR converter
2022-07-13 13:11:49 +00:00
Mikhail Glukhikh
18a5b3b518
Drop unnecessary usages of OptIn(ObsoleteDescriptorBasedAPI)
2022-07-13 13:11:48 +00:00
Mikhail Glukhikh
c92d685415
FIR: postpone callable reference candidate in default argument case
...
#KT-53019 Fixed
2022-07-12 12:22:34 +00:00
Mikhail Glukhikh
c36e160f24
FIR2IR: minor refactoring of AdapterGenerator
2022-07-12 12:22:33 +00:00
Mikhail Glukhikh
777aa725c9
Add signature cache to FirBasedSignatureComposer
2022-07-06 10:02:12 +00:00
Mikhail Glukhikh
e95fe060d6
FIR2IR: don't create signatures also for accessors & constructors
2022-07-06 10:02:12 +00:00
Mikhail Glukhikh
2880cd8d5a
FIR2IR: provide more precise conversion type context at some use-sites
2022-07-06 10:02:11 +00:00
Mikhail Glukhikh
517614a190
FIR2IR: remove code duplication from CallAndReferenceGenerator
2022-07-06 10:02:10 +00:00
Mikhail Glukhikh
bb0191b7d5
FIR2IR: don't calculate signatures for callables when possible
2022-07-06 10:02:10 +00:00
Mikhail Glukhikh
45eb9238b3
Fir2IrClassifierStorage: don't calculate signature in registerClass
2022-07-06 10:02:09 +00:00
Mikhail Glukhikh
730a5d1a88
FIR: introduce Java vs Kotlin class conflicts checker #KT-44441 Fixed
2022-07-04 13:28:58 +00:00
Mikhail Glukhikh
4aed9511f6
FIR/FE10: fix false positives described in KT-24643
2022-07-03 19:10:02 +00:00
Mikhail Glukhikh
3223d3c3e9
Add test with false/true positives for KT-24643
2022-07-03 19:10:01 +00:00
Mikhail Glukhikh
4737bb07df
FIR: look for conflicting declarations more precisely
2022-07-01 15:07:48 +00:00
Mikhail Glukhikh
3092a84b6b
Drop unreachable when branch in FirConflictsChecker
2022-07-01 15:07:48 +00:00
Mikhail Glukhikh
2b235e1188
FE10 Analysis API: use compact renderer for flexible types even in debug
2022-06-29 16:50:06 +00:00
Mikhail Glukhikh
38f4a35be2
FIR: introduce flexible types pretty rendering for no arguments case
...
#KT-52020 Fixed
2022-06-29 16:50:05 +00:00
Mikhail Glukhikh
31ec10142b
FirRenderer: add renderAllModifiers and renderDetailedTypeReferences
...
Related to KT-52020
2022-06-29 16:50:04 +00:00
Mikhail Glukhikh
b2a9ad079d
Fix unreachable branch in ConeKotlinType.render()
2022-06-29 16:50:03 +00:00
Mikhail Glukhikh
9a8fa300d7
Add test for KT-52020
2022-06-29 16:50:03 +00:00
Mikhail Glukhikh
481607df43
FIR: support proper argument mapping for substitution overrides
...
Related to KT-52762
2022-06-23 18:18:42 +00:00
Mikhail Glukhikh
b42cbf6650
Drop redundant comment to OptIn annotation class
2022-06-21 17:32:42 +00:00
Mikhail Glukhikh
8b4ae3bd70
IR interpreter: fix f/o delegation from primitive classes
2022-06-21 07:39:04 +00:00
Mikhail Glukhikh
a8ce4e827c
FIR2IR: fix f/o & delegate overridden symbol generation #KT-52745 Fixed
2022-06-21 07:39:03 +00:00
Mikhail Glukhikh
966e2442c6
Add tests for KT-52745
2022-06-21 07:39:03 +00:00
Mikhail Glukhikh
065e852199
FIR: support more precise diagnostics about parameter names
...
#KT-52762 Fixed
2022-06-20 11:28:55 +00:00
Mikhail Glukhikh
9fbafc3eb9
Add test for KT-52762
2022-06-20 11:28:55 +00:00
Mikhail Glukhikh
6a3be0d8ac
Add test for KT-52338 (fixed together with KT-49507)
2022-06-17 13:45:57 +00:00
Mikhail Glukhikh
fa914f20a4
Use nearest Java super qualifier for fields in IR converter
...
Related to KT-49507
2022-06-16 06:51:34 +00:00
Mikhail Glukhikh
8ae47d4c4d
IR: slightly fix kotlin-like dumping of super qualifiers
2022-06-16 06:51:34 +00:00