5034 Commits

Author SHA1 Message Date
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