Ilya Kirillov
b8c36b7998
Analysis API FIR: remove compilation errors from new testdata
2022-02-01 16:31:29 +01:00
Ilya Kirillov
441de5cd75
Analysis API FIR: resolve Java synthetic properties KtSyntheticJavaPropertySymbol
2022-02-01 16:31:28 +01:00
Mads Ager
d13e117a58
Change FIR analysis API resolution for super type calls.
...
The IDE expects the super type calls to resolve to the constructor
invoked and not the class. The frontend itself resolves to the
class, so an extra layer is needed to adjust that to the constructor.
2022-02-01 16:31:26 +01:00
Ilya Kirillov
4530041cbb
Analysis API: move reference resolve testsdata with errors to dedicated folders
2022-01-31 21:12:30 +01:00
Ilya Kirillov
96e1f1e7d4
Analysis API: fix some compilation errors in reference resolve testdata
2022-01-31 21:11:54 +01:00
Roman Golyshev
bc3142f4da
Remove accidentally copied testData file
2022-01-29 07:42:18 +00:00
Roman Golyshev
f0f2f67024
KT-50862 Unwrap use-site substitution overrides
...
Use-site substitution override happens in situations like this:
```
interface List<A> { fun get(i: Int): A }
fun take(list: List<String>) {
list.get(10) // this call
}
```
We want to have those overrides unwrapped, because we don't want
to deal with a different KtSymbol for each possible use-site
^KT-50862 Fixed
2022-01-29 07:42:18 +00:00
Roman Golyshev
564e408434
KT-50862 Add name property to KtSignature
...
See the KDoc of the property for the reasons why
it was created
2022-01-29 07:42:17 +00:00
Roman Golyshev
9ff46004e4
FIR IDE: Remove typesCache from KtSymbolByFirBuilder
...
This cache wasn't working too well, because ConeTypes have
equals/hashCode implementations which do not account for types'
attributes (like annotations, for example).
Because of that, `String` and `@Annotated String` were considered the
same type, and the cache was remembering whichever came first.
2022-01-27 16:23:44 +03:00
Roman Golyshev
8befbc6375
KTIJ-20826 Approximate builder inference stub types as type parameters
...
This is a temporary fix to avoid crashes in FIR IDE
Of all stub types, only `ConeStubTypeForChainInference` is handled now,
so we can catch the other possible errors with stub types (in the
delegates' inference, for example)
The fix introduced in this commit should be reworked when KT-50916 is
fixed
^KTIJ-20826 Fixed
2022-01-25 17:09:03 +03:00
Ilya Kirillov
e1fece6402
Analysis API: fix testdata of reference resolve tests which started to pass
2022-01-21 16:46:28 +01:00
Ilya Kirillov
16fbc09997
Analysis API: use FirSymbol in KtFirSymbol's instead of FirDeclaration
...
^KT-50271 fixed
2022-01-21 16:46:27 +01:00
Ilya Kirillov
3b943706d8
Analysis API: fix call resolve inside plusAssign target
...
^KT-50864 fixed
2022-01-20 23:26:28 +03:00
Ilya Kirillov
db1dedc9fe
LL API: add source element kind rendering to the GetOrBuildFirTest
2022-01-20 23:26:28 +03:00
Ilya Kirillov
5e42be9849
Analysis API: fix redundant caret symbol in testdata
2022-01-02 21:56:54 +03:00
Ilya Kirillov
11c50a48ba
Analysis API: add isSubclassOf tests
2022-01-02 21:56:53 +03:00
Ilya Kirillov
af789346f5
Analysis API: fix getKtExpressionType for array assignment target
2022-01-02 21:56:49 +03:00
Roman Golyshev
3f8fff55cf
FIR IDE: Fix ImportOptimizer for types used as generics' parameters
2021-12-24 16:31:34 +00:00
Roman Golyshev
e3219cc5b6
FIR IDE: Avoid resolving elvis operator, because it doesn't make sense
...
There are intrinsics to which elvis operator's usages are resolved;
however, we do not want to expose those intrinsics through the
high-level resolve
2021-12-21 18:48:00 +03:00
Mads Ager
61265a6501
Return error candidates from KtFirArrayAccessReference.resolveToSymbols
2021-12-21 13:22:15 +03:00
Vyacheslav Gerasimov
f7a9065b75
Build: Use intellij maven repo instead of downloaded IDEA
...
#KTI-82
2021-12-16 21:48:23 +03:00
Simon Ogorodnik
d084cfb65b
FIR HL API: Unwrap substitution overrides if it contains stub types
2021-12-15 22:23:15 +03:00
Tianyu Geng
4d2074fb66
Analysis API: allow creating type from type alias
...
There does not seem to be any reason to limit the type creator to only
create types of concrete class or object but not type alias.
2021-12-15 16:09:33 +03:00
Tianyu Geng
5fbe5981f7
Analysis API: add KtType.isDenotable()
2021-12-15 16:09:31 +03:00
Tianyu Geng
2f393cdd02
FE1.0 Analysis API: get smartcast if available with getKtExpressionType
...
The current implementation still does not work with multicast. In
addition, it appears FE1.0 does not attempt smart cast if it's not used.
2021-12-15 16:09:29 +03:00
Tianyu Geng
f197fc93db
Analysis API: add test for KtDiagnosticsProvider
2021-12-09 15:56:52 +03:00
Tianyu Geng
b52dc15aa7
Analysis API: remove dispatch receiver type from XXXSubstitutionOverridesUnwrappingTest
2021-12-09 11:01:52 +01:00
Tianyu Geng
9153db2ecc
FE1.0 Analysis API: rewrite KtFe10CallResolver
2021-12-09 11:01:52 +01:00
Tianyu Geng
f1bd3597f8
FE1.0 Analysis API: make KtSymbol only reference declaration-site subst-overrides
...
This is the FE1.0 counterpart of fa8bb47bdf
2021-12-09 11:01:52 +01:00
Tianyu Geng
9b05019137
FIR Analysis API: reimplement KtFirCallResolver with new data model
2021-12-06 12:40:43 +01:00
Tianyu Geng
c9f9ce99c1
Analysis API: adapt to KtCall data model change
...
Also add API to check if a `KtFunctionSymbol` is the invoke function on
a Kotlin builtin functional type.
2021-12-06 12:40:42 +01:00
Tianyu Geng
53b3893738
Analysis API: rework data model of resolve call API
2021-12-06 12:40:42 +01:00
Tianyu Geng
bc95733818
FIR LL API: resolve PSI elements to more specific FIR element
...
Compound access and implicit delegated constructor are mapped to FIR
elements that are way too broad.
2021-12-06 12:40:41 +01:00
Tianyu Geng
e8f1af6140
Analysis API: introduce KtSignature
2021-12-06 12:40:41 +01:00
Ilya Kirillov
7440c726d0
Analysis API: fix invalid psi elements for constants and annotation values
2021-12-02 20:09:19 +01:00
Ilya Kirillov
dc9c2aa39d
Analysis API: add KDoc, small cosmetic improvements
2021-12-02 20:09:19 +01:00
Ilya Kirillov
6e4c87f138
Analysis API: pretty print declarations additionaly to debug rendering in some tests
2021-12-02 20:09:19 +01:00
Ilya Kirillov
bad91915a6
Analysis API: adapt reference resolve tests to changes in renderer
2021-12-02 20:09:19 +01:00
Ilya Kirillov
5fbcf0d94a
Analysis API: fix extra line rendering in DebugSymbolRenderer
2021-12-02 20:09:19 +01:00
Ilya Kirillov
985c6fa0b8
Analysis API: rework KtSymbol hierarchy
...
- make some symbols to be KtPossiblyMemberSymbols
- introduce KtDeclarationSymbol for declarations
2021-12-02 20:09:19 +01:00
Ilya Kirillov
0a5bbc0096
Analysis API: update rendering testdata after changing renderer
2021-12-02 20:09:18 +01:00
Ilya Kirillov
19dec92247
Analysis API: rework declaration renderer
...
- refactor code to use PrettyPrinter instead of ad-hoc one
- do not print nested local declarations as this does not seem to have use-cases
2021-12-02 20:09:18 +01:00
Ilya Kirillov
908a47810b
Analysis API: make KtClassifierSymbol to be a KtPossibleMemberSymbol
2021-12-02 20:09:17 +01:00
Ilya Kirillov
9cb950a2ae
Analysis API: extract PrettyPrinter from DebugSymbolRenderer to utils
2021-12-02 20:09:17 +01:00
Ilya Kirillov
8cb5283a7d
Analysis API: fix file symbol restore
2021-12-02 20:09:17 +01:00
Ilya Kirillov
7919dae558
Analysis API: improve rendering of constant values
2021-12-02 20:09:17 +01:00
Ilya Kirillov
673459580c
Analysis API: introduce annotation value for KClass
2021-12-02 20:09:16 +01:00
Ilya Kirillov
f722a54c78
Analysis API: separate constant values from annotation values
2021-12-02 20:09:16 +01:00
Ilya Kirillov
47c1da2845
FIR IDE: separate KtAnnotationApplication and KtAnnotationApplicationValue
2021-12-02 20:09:16 +01:00
Ilya Kirillov
b1c8a9e886
Analysis API: rename KtConstantValue -> KtAnnotationValue as it is annotation specific
2021-12-02 20:09:14 +01:00