Ilya Kirillov
aef52323a8
Analysis API FIR/FE1.0: fix backing field rendering & resolving
2021-12-02 20:09:18 +01:00
Anastasiya Shadrina
2b30c1eb5d
[FE] Do not change original semantics in LabelResolver
2021-12-02 20:25:00 +03:00
Anastasiya Shadrina
a70036c945
[Tests] Add a test with type parameter as a context receiver
2021-12-02 20:24:58 +03:00
Anastasiya Shadrina
752bc299f1
[FE, Tests] Passing context(A, B) where context(B, A) expected
2021-12-02 20:24:56 +03:00
Anastasiya Shadrina
ac27fda965
[FE] Report ambiguity when label can refer to multiple receivers
2021-12-02 20:24:44 +03:00
Anastasiya Shadrina
7ab9b68ad5
[FE] Move type-related checks to TypeResolver
2021-12-02 20:24:41 +03:00
Anastasiya Shadrina
3a9cf042d7
[Tests] Fix FirDiagnosticTestSpecGenerated and FirIdeSpecTest
2021-12-02 20:24:33 +03:00
Anastasiya Shadrina
b3591e77be
[FE] Prohibit explicit @ContextFunctionTypeParams usage
2021-12-02 20:24:20 +03:00
Anastasiya Shadrina
a091b345a0
[FE] Provide overloadability for candidates with different CR
2021-12-02 20:24:19 +03:00
Anastasiya Shadrina
d8faa9686d
[Tests] Test samples from KEEP
2021-12-02 20:24:14 +03:00
Anastasiya Shadrina
e3f987459c
[PSI, FE] Support functional types
2021-12-02 20:24:11 +03:00
Anastasiya Shadrina
f427265739
[FE] Resolve overload conflict between contextual and non-contextual declarations
2021-12-02 20:24:03 +03:00
Anastasiya Shadrina
814777ba8c
[FE] Report ambiguity in all possible cases
2021-12-02 20:23:58 +03:00
Anastasiya Shadrina
37495bcba0
[FE] Change resolution scheme
2021-12-02 20:23:57 +03:00
Anastasiya Shadrina
37a981cc29
[Tests] Add missing tests
2021-12-02 20:23:55 +03:00
Anastasiya Shadrina
dcb3fc5508
[Tests] Add missing tests
2021-12-02 20:23:43 +03: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
Dmitriy Novozhilov
ce218b8a0b
[FIR] Make FirExtensionRegistrar a proper extension point
...
After that commit it's allowed to register any FIR plugin using
existing extension infrastructure (`-Xplugin` CLI argument,
plugin.xml for IDE plugins, etc)
2021-11-30 12:57:50 +03:00
Denis.Zharkov
7eb758fab1
FIR: Avoid propagation of @Exact annotation through elvis
2021-11-26 19:39:52 +03:00
Denis.Zharkov
0d9ad62d4a
Fix inference for lambdas with with extension function expected type
...
^KT-49832 Fixed
^KT-49836 Fixed
2021-11-26 19:39:51 +03:00
Denis.Zharkov
c0a46eaefd
FIR: Fix inference of nullable unit lambda at RHS of elvis
2021-11-26 19:39:49 +03:00
Denis.Zharkov
46217318c0
FIR: Load final static constant Java fields as non-nullable
2021-11-26 19:39:48 +03:00
Denis.Zharkov
883b18a0c6
FIR: Preserve non-custom attributes after substitution
...
The test is being fixed since synthetic call for elvis has @Exact-attribute on return type
2021-11-26 19:39:45 +03:00
Denis.Zharkov
c0b6a593e0
FIR: Fix incorrect type of block generated for inc operator
...
Previously, it was obtained from expected type of a variable being assigned,
but it's better to use the type of resulting expression
Initially this part was brought in 4ab0897d7d ,
but as we see in commit message and tests it was all about unit-coercion
2021-11-26 19:39:38 +03:00
Denis.Zharkov
6f55d23bab
FIR: Support nested light classes
2021-11-26 19:39:31 +03:00
Dmitriy Novozhilov
2b84e8e68f
[FIR] Pass proper containing classes from context to type resolution for local classes
2021-11-26 11:26:24 +03:00
Dmitriy Novozhilov
330574cab6
[FIR] Properly support smartcasts on stable when subjects in when conditions
...
^KT-49860 Fixed
2021-11-26 11:26:21 +03:00
Dmitriy Novozhilov
8707be51c9
[FIR] Report errors about invisible types from type resolution
2021-11-26 11:26:17 +03:00
Ivan Kochurkin
51b73bb6ae
[FIR] Add REDUNDANT_NULLABLE diagnostics
2021-11-24 23:13:40 +03:00
Ivan Kochurkin
3beb447e85
[FIR] Consider anonymous object declarations in classDeclarationsStack in transformers
2021-11-24 23:13:38 +03:00
Nikolay Lunyak
8d647fa016
[FIR] KT-49265: Fix implicit visibility checks
2021-11-24 14:44:50 +03:00
Dmitriy Novozhilov
9c7058c3c5
[FIR] Support fields as part of graph of class initialization
...
^KT-49747 Fixed
2021-11-22 20:22:22 +03:00
Dmitriy Novozhilov
9807c67ae4
[FIR] Properly collect overriddens for method enhancement
...
If some java class has multiple supertypes then we need to collect
overriddens from all those types directly, even if superTypeScope
(which is FirTypeIntersectionScope in this case) returns only
one symbol from one of this types (not intersection one)
This is needed to proper enhancement in cases when some type occurs
multiple times in supertypes graph with different nullability
of arguments:
class ConcurrentHashMap<K, V> : AbstractMap<K!, V!>, MutableMap<K, V>
If we try to find method `get(key: K): V` supertype scope returns
`AbstractMap.get(key: K!): V!` (because it actually overrides
`MutableMap(key: K): V?`), but we need to get both symbols to
properly enhance types for `ConcurrentHashMap.remove`
2021-11-22 17:01:17 +03:00
Victor Petukhov
a5c6d370dd
[FE 1.0] Eliminate resolution ambiguity with external type parameters
...
^KT-10926 Fixed
2021-11-22 14:18:29 +03:00
Victor Petukhov
5c3835ab39
[FE 1.0] Don't use identifier in WhenMissingCase.kt if it wasn't provided
...
^KT-49702 Fixed
2021-11-22 10:44:06 +03:00
Victor Petukhov
42805db989
[FE 1.0] Take into account import aliases during hidden member resolution
2021-11-22 10:43:43 +03:00
Dmitriy Novozhilov
da02d25278
[FE 1.0] Implement deprecation warning for private constructors of sealed classes
...
^KT-44866
^KT-49729 Fixed
2021-11-18 13:54:05 +03:00
Ivan Kylchik
c7435ba760
Replace all occurrences of WITH_RUNTIME with WITH_STDLIB
...
We are going to deprecate `WITH_RUNTIME` directive. The main reason
behind this change is that `WITH_STDLIB` directive better describes
its meaning, specifically it will add kotlin stdlib to test's classpath.
2021-11-17 15:26:38 +03:00
Ivan Kochurkin
f05436b939
[FIR] Fix false positive case of CANNOT_CHECK_FOR_ERASED
...
Restore CANNOT_CHECK_FOR_ERASED as error
2021-11-16 18:15:49 +03:00
Dmitriy Novozhilov
2aa027639c
[FIR] Fix access to fields from super class
...
^KT-49654 Fixed
2021-11-16 15:48:08 +03:00
Dmitriy Novozhilov
499b97d51e
[FIR] Fix setting file in supertypes resolution
...
^KT-49652 Fixed
2021-11-16 15:48:06 +03:00
Nikolay Lunyak
2fb066e261
KT-47101: Fix companion supertypes
2021-11-15 13:22:38 +00:00
Ivan Kochurkin
e52a410599
[FIR] Initialize outer type parameters for local classes
2021-11-12 15:20:42 +03:00
Yan Zhulanow
8d18fa2d00
[FIR IDE] Ensure prefixed test output file differs from the default one
2021-11-12 20:09:50 +09:00
Jinseong Jeon
cf886c5975
FIR LL: fix searching logic for enum entry
...
KtEnumEntry, a subtype of KtClass, has been handled by
findNonLocalClass. Since KtEnumEntry doesn't have class id, that util
always throws an error while retrieving class id.
Instead, we should use containing class (i.e., enum class) id.
Also, once the enum class is resolved, we should search for matching
enum entry inside the enum class.
2021-11-12 12:11:06 +03:00
Jinseong Jeon
140b8d6ddf
FIR LL: remove redundant test data for library module resolve
...
There are in plugins/kotlin/fir-low-level-api-ide-impl in intellij repo.
2021-11-12 12:11:05 +03:00
Denis.Zharkov
6e15ee8fea
FIR: Refine callable reference resolution in assignment position
...
synthetic_select<() -> T>(::foo) form allows to select better candidate
than synthetic_select(::foo) with expect type `() -> T`
2021-11-10 22:00:01 +03:00
Denis.Zharkov
65d7da122f
FIR: Fix invalid INITIALIZER_TYPE_MISMATCH for suspend lambda
2021-11-10 22:00:01 +03:00
Denis.Zharkov
994040c91c
FIR: Support invoke convention on super-qualified calls
2021-11-10 22:00:00 +03:00
Dmitriy Novozhilov
ec079a2663
[Build] Add runtime dependency on descriptors.runtime to tests for low level api
...
This is needed to keep ability to run those tests using JPS
2021-11-09 20:06:11 +03:00