Mads Ager
ea86d52faf
[Analysis API] Avoid exception from getImportAlias.
2022-01-10 19:50:15 +03:00
Ilya Kirillov
11c50a48ba
Analysis API: add isSubclassOf tests
2022-01-02 21:56:53 +03:00
Ilya Kirillov
b81316738e
Analysis FIR: fix isSubClass check for local classes
2022-01-02 21:56:52 +03:00
Ilya Kirillov
1d6d67d0a1
FIR IDE: regenerate tests
2022-01-02 21:56:51 +03:00
Ilya Kirillov
af789346f5
Analysis API: fix getKtExpressionType for array assignment target
2022-01-02 21:56:49 +03:00
Ilya Kirillov
40fdb26569
Analysis LC: introduce Symbol LC tests
2021-12-27 16:23:18 +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
287c23269a
FIR IDE: Make getContainingPsi work with ItLambdaParameter source
...
It prevented the code completion to work in positions like
`"hello".let { <caret> }`
2021-12-24 16:19:30 +03: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
Roman Golyshev
89c3e04a36
[FIR IDE] Rethrow IndexNotReadyException from KtFirReferenceResolver
...
Resolve can be called even when the indices are not ready. In such cases
the `IndexNotReadyException` can be intentionally ignored by the
platform code
To make our code play nice with the platform, from now on we do not
wrap `IndexNotReadyException` into another exception - instead we
just let it fly and be ignored by the platform. If the platform
doesn't choose to ignore it, then it will be showed as an error
as usual
2021-12-15 22:12:00 +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
a5844b754e
Type Approximation: add separate flag to control approx. anonymous type
...
This extra flexibility is useful for IDE where we always want to
approximate anonymous types but may not want to approximate other local
types
2021-12-15 16:09:27 +03:00
Tianyu Geng
f197fc93db
Analysis API: add test for KtDiagnosticsProvider
2021-12-09 15:56:52 +03:00
Ivan Kochurkin
800d594a4f
[FIR] Check adding default error messages for all diagnostics ^KT-49973 fixed
...
Also, check for duplicates
2021-12-09 12:31:23 +00:00
Mikhael Bogdanov
7e99ba30f3
Remove obsolete USAGE_OF_JVM_DEFAULT_THROUGH_SUPER_CALL diagnostic
...
#KT-47000
2021-12-09 11:30:06 +01:00
Mikhail Glukhikh
533e802c8d
FIR: support JVM_DEFAULT_WITH_COMPATIBILITY_* diagnostics (FE 1.0 sync)
2021-12-09 13:26:40 +03:00
Mikhail Glukhikh
178290eac3
FIR: drop JVM_DEFAULT_THROUGH_INHERITANCE diagnostic (FE 1.0 sync)
2021-12-09 13:26:39 +03:00
Jinseong Jeon
f8a6ab9536
FIR LC: populate DefaultImpls if an interface has default implementations
2021-12-09 11:04:25 +01:00
Dmitry Petrov
1fd0dec5e7
FE KT-47939 callable references to functional interface constructors
...
Allow callable references to Kotlin 'fun interface' constructors.
Prohibit callable references to Java SAM interface constructors.
2021-12-08 14:12:33 +03: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
58067e0a1e
FIR checker: carry original candidate in ConeDiagnosticWithCandidates
...
This is needed by IDE when resolving calls because candidates carry more
information than just the targeting symbol.
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
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
d5f6809f76
Analysis API FIR: fix rendering FirField
2021-12-02 20:09:18 +01:00
Ilya Kirillov
68e3c72a64
Analysis API FIR: fix missing type aliases in KtFirFileScope
2021-12-02 20:09:18 +01:00
Ilya Kirillov
aef52323a8
Analysis API FIR/FE1.0: fix backing field rendering & resolving
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
e608f8d8dc
Analysis API: fix invalid constant value kind for unsigned numbers
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
Tianyu Geng
18f7a760bb
FIR checker: report unresolved reference in imports
...
Compared to FE1.0, instead of using UNRESOLVED_REFERENCE, a new
UNRESOLVED_IMPORT diagnostic is introduced. This is so that we can use a
different positioning strategy to highlight the last part of the import
if the entire import is passed.
Also, this change fixed some incorrectly rejected imports in FIR. Such
cases are covered the newly added test file staticFunAndPropertyImport.kt
2021-12-01 23:45:18 +03:00
Tianyu Geng
f1d0791f15
Analysis API: add test for KtDeclaration.getReturnKtType
...
FE1.0 always return kotlin.Unit as return type for constructors while
FIR returns the constructed class type. I am not sure which is more
desirable. Also, I am not sure how to make FE1.0 behave the same way.
2021-11-30 18:02:33 +01:00
Dmitriy Novozhilov
4fb8ab052f
Add workaround for KT-49925
2021-11-26 15:19:11 +03:00
Roman Golyshev
fa8bb47bdf
[FIR IDE] Add unwrapping substitution overrides which doesn't affect function's signature
...
Also, do not use PSI to restore SUBSTITUTION_OVERRIDE function/property
symbols
2021-11-25 21:19:56 +03:00
Ivan Kochurkin
f046f2964b
[FIR] Add PLATFORM_CLASS_MAPPED_TO_KOTLIN
2021-11-24 23:13:41 +03:00
Ivan Kochurkin
51b73bb6ae
[FIR] Add REDUNDANT_NULLABLE diagnostics
2021-11-24 23:13:40 +03:00
Ivan Kochurkin
4caf3c5e83
[FIR] Add NOT_A_CLASS diagnostics
2021-11-24 23:13:40 +03:00
Dmitriy Novozhilov
75b6f7ca00
[FIR] Make FirRegularClass.companionObject companionObjectSymbol field
...
This is needed for two reasons:
1. Before this change companion object appeared in FirRegularClass
twice: in declarations list and in companionObject field. This may
trigger twice transform of it
2. It's very hard to implement generation of companion object by plugins
because if it is part of the tree then generated declaration must be
registered in FirProvider, which is inconsistent with other generated
declarations. Replacing FIR with symbol and removing custom logic of
visiting/transforming companion FIR allows us to just replace companionSymbol
in FirClass if plugin wants to generate it without any additional work
2021-11-23 15:01:05 +03:00
Ilya Kirillov
1335a2c3ab
Analysis API: remove KtTypeRendererOptions.renderTypeArguments as unused
2021-11-22 22:47:20 +01:00
Ilya Kirillov
1d1f5ace8f
Analysis API: rename KtCallableSymbol.type -> returnType
2021-11-22 22:47:01 +01:00