Mikhail Glukhikh
0a7da903f4
FE1.0/FIR: add test for "double import" situation
2022-03-15 13:21:00 +00:00
Mikhail Glukhikh
6b53ac8367
FIR: forbid top-level destructuring declarations #KT-50468 Fixed
2022-03-15 13:08:18 +00:00
Mikhail Glukhikh
6ecc97575d
FIR: make deeper recursive type alias expansion check (see KT-37000)
2022-03-15 13:08:18 +00:00
Yan Zhulanow
c334a44e02
Preserve synthetic enum methods in stub-based 'ClsClassImpl'
...
'ClsClassImpl' instances created by the platform contain synthetic
enum methods (added by 'ClassInnerStuffCache.calcMethods()'). Such
convention is common in IntelliJ (see KT-36095 and
'9a8b345adaded83fe13980a28db5d9f9acc7450d' in the IntelliJ repository).
This commit makes Kotlin's stub-based classes consistent with the
convention. Instead, a filter is added in place of 'ClsClassImpl' usage.
See also the following commits:
- 7c86911f44
- 43468c6d55
2022-03-14 17:53:55 +09:00
Yan Zhulanow
fa4dadf9b7
Update KotlinClassInnerStuffCache implementation
...
'KotlinClassInnerStuffCache' was copy-pasted from the platform's
'ClassInnerStuffCache' several years ago. After J2K and other changes,
it became quite dirty.
Besides cleaning things up, enum synthetic method handling have
significantly improved. Before, such methods were handled only in
'processDeclarationsInEnum', and 'getMethods()' didn't return them.
This led to inconsistent behavior and was reason for providing special
ad-hoc support in '1b6ded600518176b21cc308ed3e032ef8d04cc90'.
2022-03-14 17:53:55 +09:00
Yan Zhulanow
955d0841bd
Remove unused modification tracker in KotlinClassInnerStuffCache
...
'dropCaches()' is not used anywhere both in the compiler and in the IDE.
2022-03-14 17:53:55 +09:00
Yan Zhulanow
f237631f05
Revert "FIR/LC: create synthetic members of enum class"
...
This reverts commit 1b6ded60
2022-03-14 17:53:55 +09:00
Jinseong Jeon
46707b0426
AA: test evaluation mode with same test inputs
2022-03-11 13:51:16 +01:00
Jinseong Jeon
a7fcbfb717
AA: move logic to evaluate constant property initializer
...
so as to handle composite expressions w/ constant property
2022-03-11 13:51:16 +01:00
Jinseong Jeon
606033e1e6
AA: introduce KtConstantEvaluationMode
2022-03-11 13:51:15 +01:00
Jinseong Jeon
ee23a52e54
AA: avoid conversions to KtInitializerValue in constant evaluator
2022-03-11 13:51:15 +01:00
Jinseong Jeon
1f93630a9c
AA: evaluate constant property initializers
2022-03-11 13:51:14 +01:00
Jinseong Jeon
7ec7cc47a9
AA: ignore evaluating named reference (to avoid exceptions)
2022-03-11 13:51:14 +01:00
Jinseong Jeon
e36bf55807
AA: avoid NPE while evaluating operations with non-numbers
2022-03-11 13:51:13 +01:00
Dmitriy Novozhilov
ade2307345
[FIR] Fix exponential analysis of augmented array access calls
...
^KT-50861 Fixed
2022-03-11 15:36:05 +03:00
Mikhail Glukhikh
f073e86c93
Update FIR Analysis API test data
2022-03-10 20:42:42 +00:00
Mikhail Glukhikh
59a1c68081
FIR LL: add predicate based provider to library resolvable session
2022-03-10 20:42:42 +00:00
Mikhail Glukhikh
34998473f5
FIR: Move deprecation resolve earlier
2022-03-10 20:42:41 +00:00
Mikhail Glukhikh
3505b285f7
FirLazyDeclarationResolver: drop skipPhaseInLazyResolve
2022-03-10 20:42:41 +00:00
Mikhail Glukhikh
30fa0230ec
FIR: rename ANNOTATION_FOR_PLUGINS into COMPILER_REQUIRED_ANNOTATIONS
2022-03-10 20:42:40 +00:00
Mikhail Glukhikh
9aaf7b7d24
FIR: drop pluginPhase special parameter
2022-03-10 20:42:40 +00:00
Mikhail Glukhikh
14eec6cfc0
FE 1.0: implement typed this label resolve warning for KT-51433
...
#KT-51433 Fixed
2022-03-09 15:19:27 +00:00
Mikhail Glukhikh
b5e2c492c6
FE 1.0: implement initial label resolve warning for KT-51433
2022-03-09 15:19:26 +00:00
Ilya Kirillov
092550aaee
[Symbol LC] fix invalid caching for FirLightClassBase
...
Previously, value created by FirLightClassesLazyCreator was never recalculated based on dependencies changes
2022-03-03 20:12:56 +03:00
Mikhail Glukhikh
ebed224f82
FE 1.0: use TYPE_VARIANCE_CONFLICT deprecation factory
2022-03-03 12:57:04 +00:00
Mikhail Glukhikh
7781413a93
FE 1.0: report TYPE_VARIANCE_CONFLICT also on qualifier type arguments
...
#KT-51439 Fixed
2022-03-03 12:57:04 +00:00
Jinseong Jeon
870cdfd226
AA: add an API to configure proj env w/o explicit KtFiles
...
We can retrieve source files from compiler configuration.
Then, we can search for corresponding KtFiles for them.
2022-03-02 21:11:54 +01:00
Jinseong Jeon
47b0e66ca1
AA: remove unnecessary source path retrieval/cache
...
Instead, use source module's contentScope
2022-03-02 21:11:54 +01:00
Jinseong Jeon
a68fd25982
AA: relax the assertion about referenced ClassId and qualified access
...
If an import alias is involved, they could be not identical.
Since an import alias ends with a simple identifer, we can simply drop
the first segment of qualified access and try the assertion again.
2022-03-02 20:30:31 +01:00
Dmitriy Novozhilov
18fc2802e5
[FIR] Make FirTypeParameter.containingDeclarationSymbol not null
...
Also fix initializing this property in all places
2022-02-28 11:42:34 +03:00
Roman Golyshev
8bcdc70adc
FIR IDE: Add IDE tests for sample compiler plugin
2022-02-25 23:08:26 +03:00
Roman Golyshev
fed08aaff5
FIR IDE: Consider COMPANION_GENERATION phase in lazy resolve
2022-02-25 23:08:26 +03:00
Roman Golyshev
6e649dd29c
FIR IDE: Add a way to use test compiler plugin in FIR IDE tests
...
Compiler plugins can be enabled
by WITH_FIR_TEST_COMPILER_PLUGIN directive
2022-02-25 23:08:26 +03:00
Roman Golyshev
1a77643ad0
FIR IDE: Add static implementation of KotlinAnnotationsResolver
2022-02-25 23:08:26 +03:00
Roman Golyshev
765af5f18a
FIR IDE: Register plugins-related session components in IDE session
...
Move registering CLI-specific plugin-related components to
`registerCliCompilerOnlyComponents`
2022-02-25 23:08:25 +03:00
Roman Golyshev
8d9d46dae3
FIR IDE: Lift extensions registration higher in session creation process
...
We want to do that before creating symbol providers
2022-02-25 23:08:25 +03:00
Roman Golyshev
b1b99e1673
FIR IDE: Add the simplest support for PLUGIN KtDeclarationOrigin
2022-02-25 23:08:25 +03:00
Roman Golyshev
6d6a3fbe21
FIR IDE: Consider generated names in KtFirPackageScope
...
If scope doesn't return generated names from `getPossibleCallableNames`,
it's impossible to query them from the scope, since you have to know the
name of callable/classifier to query it
2022-02-25 23:08:25 +03:00
Roman Golyshev
13cc0ddf97
FIR: Implement FirIdePredicateBasedProvider
2022-02-25 23:08:25 +03:00
Roman Golyshev
08b6353431
FIR: Add IDE implementation for FirRegisteredPluginAnnotations
...
It works on `KotlinAnnotationsResolver`, which means that it uses
PSI indices to search for the annotations
2022-02-25 23:08:25 +03:00
Roman Golyshev
76707afc90
FIR: Add KotlinAnnotationsResolver service
2022-02-25 23:08:25 +03:00
Ilya Kirillov
4a5aee688e
FIR LC: fix invalid type param upper bound
2022-02-25 14:06:05 +01:00
Mikhail Glukhikh
53d6ac24e5
Switch kotlin version to 1.7
...
* Change 1.6 to 1.7 constants
* Fix SAFE_CALL_WILL_CHANGE_NULLABILITY for testData
* Change EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_WARNING to EXPOSED_PROPERTY_TYPE_IN_CONSTRUCTOR_ERROR
* Change NON_EXHAUSTIVE_WHEN_STATEMENT to NO_ELSE_IN_WHEN
* Fix testData for SafeCallsAreAlwaysNullable
* Change T -> T & Any in test dumps
* Change INVALID_CHARACTERS_NATIVE_WARNING -> INVALID_CHARACTERS_NATIVE_ERROR
* TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_WARNING -> TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM_ERROR
2022-02-25 11:46:27 +00:00
Roman Golyshev
f1f2c7cce5
FIR IDE: Small fixes
2022-02-25 01:54:25 +03:00
Jinseong Jeon
1b276a3c59
AA: allow enum generated declarations for psi retrieval
2022-02-24 17:51:51 +01:00
Jinseong Jeon
1b6ded6005
FIR/LC: create synthetic members of enum class
...
^KTIJ-17414 In Progress
^KTIJ-17444 In Progress
2022-02-24 17:51:50 +01:00
Jinseong Jeon
26e7fc9da3
FIR LC: avoid hardcoded annotation name
2022-02-24 17:51:49 +01:00
Jinseong Jeon
f49a42895f
FIR LC: use StandardNames (instead of hardcoded constants)
2022-02-24 17:51:47 +01:00
Ivan Kochurkin
f751f13c4d
[FIR] Fix incompatible KClass<Any> and callable reference Collection::class, ^KT-51272 Fixed
2022-02-23 14:21:59 +03:00
Ivan Kochurkin
31d9313c51
[FIR] Fix "Expected some types" exception, ^KT-51274 Fixed
2022-02-23 14:21:59 +03:00