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
Mikhail Glukhikh
ad0d0ca47f
Drop redundant Suppress("RemoveExplicitTypeArguments")
2022-01-26 12:19:55 +00: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
d74418f575
LL API: remove old resolve api
2022-01-21 16:46:40 +01:00
Ilya Kirillov
75ae37fcbf
LL API: remove unused resolve api
2022-01-21 16:46:36 +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
Mikhail Glukhikh
1274e2b90a
Deprecate ExtensionFunctionType on a non-function types
...
Related to KT-43527
2022-01-14 22:20:44 +03:00
Mikhail Glukhikh
d0fa3eb1d3
Forbid ExtensionFunctionType on functional types without parameters
...
#KT-43527 Fixed
2022-01-14 22:20:24 +03:00
Mikhail Glukhikh
beb2957726
FIR: render <T> name for DELEGATE_USES_EXTENSION_PROPERTY_TYPE_PARAMETER
...
Related to KT-50183
2022-01-14 22:20:23 +03:00
Mikhail Glukhikh
b689bbf5c7
Forbid usages of super if in fact it accesses an abstract member
...
#KT-49017 Fixed
2022-01-14 22:20:21 +03:00
Evgeniy.Zhelenskiy
df1de3a7d3
[JVM] Forbid non-JvmInline value classes again
2022-01-14 13:51:56 +00:00
Dmitriy Novozhilov
9f870b0549
[FIR] Report errors on cycles in annotation parameter types
...
^KT-47932
2022-01-14 14:26:53 +03:00
Roman Golyshev
4418d76a0d
FIR: Replace fir.bounds with resolvedBounds where it is appropriate
...
If there is a `coneType` call immediately after the `fir.bounds` call,
it means that the fully resolved type is expected, hence
`resolvedBounds` should be used
2022-01-14 01:04:24 +03:00
Denis.Zharkov
a33d9df0cd
NI: Support forking inference with heuristics
...
Mostly, it only affects FIR
It partially allows to consider several variance of constraints like
A<Int> & A<T> <: A<X_var> that are mostly brought by smart casts
^KT-49542 Fixed
^KT-50489 Relates
2022-01-11 20:45:55 +03:00
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