Tianyu Geng
80b3e2eb69
FIR IDE: move helpers for HasCommonSubtypeTestGenerated
2021-10-16 14:16:23 +02:00
Jinseong Jeon
26673d2b08
FIR IDE: find source of deserialized enum entry
2021-10-15 19:45:05 +00:00
Jinseong Jeon
8023e7fb02
FIR IDE: add a test for resolution of @Retention value
2021-10-15 19:45:04 +00:00
Mark Punzalan
167dc81d3b
FIR/Analysis API: Get parameter name from function type notation or
...
`@ParameterName` annotation, which is also now added during type
resolution.
2021-10-15 16:19:00 +03:00
Tianyu Geng
c10879be43
FIR IDE: get type of unresovled super
...
FIR does not provide any type for unresolved super so we manually
synthesize such types for completion to work.
2021-10-15 14:12:43 +02:00
Jinseong Jeon
c669749915
FIR LC: adapt to split of property annotations during FIR building
...
As of 7243d308 , property annotations are split according to use-site,
and thus, for property accessors and setter parameter, FIR LC needs
to look up accessors and setter parameter with the target use-site.
2021-10-15 13:50:32 +02:00
Tianyu Geng
3877dc8cc3
FIR IDE: tolerate comma in when conditions
...
For invalid code like the following,
```
when {
true, false -> {}
}
```
`false` does not have a corresponding elements on the FIR side and hence
the containing `FirWhenBranch` is returned by `getOrBuildFir`. This
change makes the analysis API bail out for such cases.
2021-10-14 20:50:50 +02:00
Tianyu Geng
a08ab45e22
FIR IDE: make all HL tests covering depended mode
...
Also changed tests to do the analysis on the KtElement of
interest instead of the KtFile where possible because currently depended
mode does not support analysing the entire file. Maybe we should support
analysing the whole file at some point.
2021-10-14 06:05:32 +03:00
Roman Golyshev
d3e2f9a3f6
[FIR IDE] Fix bug in diagnostics' combining during code generation
2021-10-12 19:21:11 +00:00
Dmitriy Novozhilov
b4d955838e
[FIR] Properly use FirContainingNamesAwareScope in all places
...
Split some delegating scopes to basic and name aware implementations
Also get rid of getContainingCallableNamesIfPresent and
getContainingClassifierNamesIfPresent functions because they are not
needed anymore
2021-10-12 17:26:43 +03:00
Dmitriy Novozhilov
af6d6ec2b9
[FIR] Properly collect constructors from class in presence of plugins
2021-10-12 17:26:41 +03:00
Dmitriy Novozhilov
26fa772846
[FIR] Add ability to generate members and nested classifiers for existing classes
2021-10-12 17:26:30 +03:00
Dmitriy Novozhilov
9bfa6c54b8
[FIR] Inherit FirContainingNamesAwareScope from FirScope
...
This is needed to simplify FirScope hierarchy, because in
fact all inheritors of `FirContainingNamesAwareScope` were
inheritors of `FirScope` too
2021-10-12 17:26:29 +03:00
Roman Golyshev
9113ccb8fc
[FIR IDE] Properly support loop variables in KtFirSymbolProvider
2021-10-07 18:30:21 +03:00
Denis.Zharkov
1c16f2f8c9
Fix ClassCastException at FirUninitializedEnumChecker
2021-10-07 17:26:29 +03:00
Tianyu Geng
826ea122a9
FIR checker: DSL_SCOPE_VIOLATION
2021-10-05 15:30:37 +03:00
Mark Punzalan
d16454b9af
FIR: Set resolve phase to BODY_RESOLVE for SAM constructor value
...
parameters.
This was causing exceptions with analysis API trying to resolve the
synthetic FirValueParameter because it could not find a KtDeclaration
for it. Using BODY_RESOLVE should be safe; the SAM constructor function
is also on BODY_RESOLVE and the type of the value parameter is known.
2021-10-04 19:38:43 +03:00
Ivan Kochurkin
75b40e4b75
[FIR] Add INVISIBLE_SETTER
2021-10-03 17:10:06 +03:00
Jinseong Jeon
464eecef03
FIR IDE: add more tests about annotation resolution
2021-10-01 18:54:14 +03:00
Ilya Kirillov
c8c1ee2b5a
Fix usage of readWriteAccess without resolve
...
^KTIJ-19777 fixed
2021-10-01 16:48:35 +02:00
Tianyu Geng
5c716ea979
FIR checker: report NOT_A_FUNCTION_LABEL
2021-10-01 17:21:39 +03:00
Ilya Kirillov
5c3ce67648
Analysis API: introduce KtIntegerLiteralType
2021-09-30 01:46:00 +03:00
Ilya Kirillov
8d15e0e824
Analysis API: use FirSession from star importing scope for resolving classifiers
...
Resolve should happen from the use-site of the file to which importing scope belongs to
2021-09-29 22:24:27 +02:00
Tianyu Geng
43257f7688
FIR IDE: rename SymbolKind: MEMBER -> CLASS_MEMBER
2021-09-29 22:24:27 +02:00
Tianyu Geng
954926e0de
FIR IDE: get containing symbol of KtTypeParameterSymbol
...
As part of this change, we now also allow HL API to get containing
symbol for any KtSymbols.
2021-09-29 22:24:26 +02:00
Tianyu Geng
7c3754f516
FIR IDE: output substitutor from checkExtensionIsSuitable
2021-09-29 22:24:26 +02:00
Tianyu Geng
18a23f26f5
FIR IDE: allow getting overridden symbols on any callable symbols
...
This way caller don't need to first check if the symbol is allowed to
override. The current API throws for cases like Java field, or enum
entry, which is not very user-friendly.
2021-09-29 22:24:26 +02:00
Tianyu Geng
54b32f6911
FIR IDE: allow get overriding symbols of members in anonymous object
2021-09-29 22:24:26 +02:00
Tianyu Geng
50166c776c
FIR IDE: add KtClassInitializerSymbol
2021-09-29 22:24:26 +02:00
Tianyu Geng
6f9712a812
FIR IDE: get property as containing symbol for default accessors
2021-09-29 22:24:26 +02:00
Tianyu Geng
3b48103cd2
FIR IDE: Add API to get implicit receiver types at a position
...
This will be used in completion contribution.
2021-09-29 22:24:25 +02:00
Tianyu Geng
14452661cc
FIR IDE: makes HL ref shortener tolerate missing type arg in type refs
2021-09-29 22:24:25 +02:00
Tianyu Geng
72a4687990
FIR IDE: fix KtFirNonStarImportingScope
2021-09-29 22:24:25 +02:00
Tianyu Geng
211544e790
FIR: rename FirResolvedImport.resolvedClassId|relativeClassName
...
These two fields references the parent of the import rather than the
classes that are imported. For example
```
import java.util.Map // resolvedClassId -> null
import java.util.Map.Entry // resolvedClassId -> java.util.Map
import java.util.Map.* // resolvedClassId -> java.util.Map
import java.util.Map.someStaticMethod // resolvedClassId -> java.util.Map
import kotlin.package.someTopLevelFuntion // resolvedClassId -> null
import kotlin.package.MyObject.someObjectFuntion // resolvedClassId -> kotlin.package.MyObject
```
2021-09-29 22:24:25 +02:00
Mikhail Glukhikh
3045a5e920
FIR: implement OPT_IN_MARKER_ON_WRONG_TARGET
2021-09-29 19:39:20 +03:00
Mark Punzalan
7425986bf0
Analysis API: Don't resolve references to @Deprecated(HIDDEN)
...
declarations.
2021-09-29 19:39:16 +03:00
Ilya Kirillov
7d4d035287
Analysis API: add validity assertions to diagnostics
2021-09-28 15:55:24 +03:00
Ilya Kirillov
9fd988d727
Analysis API: regenerate diagnostic classes
2021-09-28 15:55:22 +03:00
Ilya Kirillov
6c97393927
Analysis API: get rid of weak refs scheme for working with FIR internals for diagnostics
2021-09-28 15:55:19 +03:00
Ilya Kirillov
d723916d67
Analysis API: get rid of weak refs scheme for working with FIR internals for KtScope
2021-09-28 15:55:18 +03:00
Ilya Kirillov
d348c48e4f
Analysis API: get rid of weak refs scheme for working with FIR internals for KtSymbol and KtType
2021-09-28 15:55:17 +03:00
Ilya Kirillov
2de4a6f924
Analysis API: fix reference resolving for implicit invoke calls
2021-09-28 15:55:16 +03:00
Vyacheslav Gerasimov
ab146bd6d4
Build: Fix deprecated Gradle configurations usages
...
for migration to Gradle 7+ #KTI-559
2021-09-26 18:28:44 +03:00
Jinseong Jeon
d9424fa092
FIR IDE/LC: rename origin of constant values
2021-09-23 00:11:26 +02:00
Jinseong Jeon
d3d3aeacb4
FIR IDE: make compile-time constant evaluator an object
...
because it doesn't have any states.
2021-09-23 00:11:26 +02:00
Jinseong Jeon
414881403b
FIR IDE: handle annotation array values properly
2021-09-23 00:11:26 +02:00
Jinseong Jeon
ffd0a5ed14
FIR IDE: make constant values symbol-free
2021-09-23 00:11:26 +02:00
Jinseong Jeon
f94dad7005
FIR IDE: migrate annotation parameter conversion util
2021-09-23 00:11:26 +02:00
Jinseong Jeon
0f16a2cb92
FIR IDE: rename some of constant values for consistency
2021-09-23 00:11:25 +02:00
Jinseong Jeon
ce445700b8
FIR IDE: split conversion utils for KtConstantValue to its own object
2021-09-23 00:11:25 +02:00