Commit Graph

343 Commits

Author SHA1 Message Date
Mikhail Glukhikh 446ee943e2 FIR analysis API: fix rendering of Java-based types 2022-05-31 11:34:53 +00:00
Stanislav Erokhin 2deb0cc237 FIR/Analysis API: Add KtValueParameterSymbol#generatedPrimaryConstructorProperty
This property are used to allow access to the property created from
the primary constructor parameter
2022-05-30 18:39:21 +00:00
Ilya Kirillov f189fd1ff0 [Analysis API] make KtDeclarationSymbol <: KtSymbolWithTypeParameters
To simplify work with type parameters
2022-05-27 16:39:37 +00:00
Jiaxiang Chen 8f4554959e AA: make KtClassifierSymbol a subtype of KtAnnotatedSymbol 2022-05-27 16:39:37 +00:00
Jiaxiang Chen 866ebcfe2e AA: make KtCallableSymbol a subtype of KtAnnotatedSymbol 2022-05-27 16:39:37 +00:00
Victor Petukhov 867ad24c86 [FE] Show causing types in the INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION diagnostic 2022-05-27 15:14:24 +00:00
Tianyu Geng b5139c958b [Analysis API] Add KtReferenceMutateService...
and delegate renaming and rebinding to this new service for `KtReference`.

In addition, CliKtFe10XXXReference are all removed because it seems they are not necessary because the IDE flavor differs only by handling renaming, which is moved to a separate service.
2022-05-27 15:37:33 +02:00
Tianyu Geng 213e7154c2 Analysis API: remove unnecessary overwrite in KtFirSimpleNameReference 2022-05-27 15:37:32 +02:00
Mikhail Glukhikh 6f17a8713c Fix KT-47708 in FIR by transferring SAM annotations to synthetic constr. 2022-05-24 12:29:28 +00:00
Dmitriy Novozhilov d66748d011 [FIR] Extract expect actual matching into separate phase 2022-05-20 13:33:04 +00:00
Ilya Kirillov b5ad6f5db4 [analysis api] move analysis session classes to separate packages, use KtAnalysisApiInternals to mark internal API 2022-05-12 16:15:14 +02:00
Ilya Kirillov eb9085c083 [analysis api] rename analyse -> analyze to match American word spelling 2022-05-12 16:15:13 +02:00
Jiaxiang Chen 7b038860b5 AA: add analyzeWithKtModule API for analyzing without KtElement 2022-05-12 16:15:03 +02:00
Ilya Kirillov ef0160c026 [analysis api] rename ValidityToken -> KtLifetimeToken 2022-05-12 16:15:02 +02:00
Ilya Kirillov ecbf9cd4d5 [analysis api] fix ISE: No conversion was found for SYNTAX
^KT-51786 fixed
2022-05-11 13:14:44 +02:00
Ilya Kirillov bc92831475 [analysis api] fix ArrayIndexOutOfBoundsException on KtDiagnostic creation
The problem was caused by concurrent access to the non-thread safe List.
This list is not needed anymore, previously it was used to store strong
references to FIR diagnostics corresponding references in KtDiagnostics
were weak references.

^KTIJ-21449 fixed
2022-05-10 15:39:28 +00:00
Ilya Kirillov 4ff38c9697 [fir low level, refactoring] rename LLFirModuleResolveState -> LLFirResolveSession 2022-05-05 10:43:13 +02:00
Ilya Kirillov 7b70cf3ae0 [fir low level, refactoring] rename rootModule -> useSiteModule 2022-05-05 10:43:13 +02:00
Victor Petukhov b96708c3e2 [FE] Support reporting INFERRED_TYPE_VARIABLE_INTO_EMPTY_INTERSECTION for empty intersection types with type parameters 2022-04-27 19:50:21 +00:00
Victor Petukhov 8e834fc7bb [FIR] Move subtyping helpers into TypeUtils.kt 2022-04-27 19:50:17 +00:00
Jinseong Jeon af21b67eb5 LL: cache reverse converted constant expression 2022-04-22 18:55:31 +02:00
Jinseong Jeon 61cca31b6b AA: special handling for converted constants 2022-04-22 18:55:30 +02:00
Jinseong Jeon faf6939515 AA: showcase strange const evaluation for -1 2022-04-22 18:55:30 +02:00
Roman Golyshev ea8a05ec02 [FIR IDE] Small refactoring of KtSymbol's value parameters 2022-04-21 21:12:57 +00:00
Jinseong Jeon 889db4cc5d AA: indicate whether a value parameter is an implicit lambda parameter
^KTIJ-18800 In progress
2022-04-21 19:18:25 +02:00
Jinseong Jeon a74a51b2d9 AA: add tests about resolution of implicit lambda parameter 2022-04-21 19:18:24 +02:00
Vyacheslav Gerasimov c8f2872a07 Fix flaky FIR tests
failing with 'Jar with annotations does not exist. Please run
:plugins:fir-plugin-prototype:plugin-annotations:jar'
2022-04-20 12:54:08 +03:00
Ilya Kirillov 3b4eb2d788 [kotlin fir] fix creating symbol not in analysis scope
^KTIJ-21504 fixed
2022-04-19 19:34:21 +02:00
Ilya Kirillov 9a562a0293 [analysis api] optimize search for declarations in IDE 2022-04-19 12:37:49 +02:00
Ilya Kirillov 9a18598606 [low level api] rework components structure, add ScopeSession caches 2022-04-19 12:37:47 +02:00
Jerome Prinet 44b2905800 Fix JavaApplication.setMainClassName deprecation 2022-04-14 14:21:31 +03:00
Ilya Kirillov ab80dc680a [analysis api] regenreate tests 2022-04-13 12:53:30 +02:00
Ilya Kirillov 0fa791e669 [low level fir] lazyly get KtSymbol for builtins 2022-04-13 12:53:28 +02:00
Ilya Kirillov 16470a2406 [analysis api] provide a function to get containing module for a KtSymbol 2022-04-13 12:53:24 +02:00
Ilya Kirillov 2649788b87 [analysis api fir] put every library into a separate KtModule in tests 2022-04-13 12:53:22 +02:00
Ilya Kirillov e69fa1ae07 [analysis api, test] rework test infrastructure, add possibility to create multimodule tests 2022-04-13 12:53:19 +02:00
Ilya Kirillov 2506878063 [analysis api, tests] regenerate tests 2022-04-13 12:53:16 +02:00
Ilya Kirillov 329e495b63 [analysis api, tests] generate analysis api in a separate tests-gen folder 2022-04-13 12:53:14 +02:00
Ilya Kirillov 78685e93d1 [analysis api, tests] move resolve call tests to separate package 2022-04-13 12:53:05 +02:00
Ilya Kirillov 8dd66dd338 [analysis api] regenerate tests 2022-04-13 12:53:04 +02:00
Ilya Kirillov 4bd7fed1ea [analysis api, test] rework test infrastructure, add multimodule tests 2022-04-13 12:53:01 +02:00
Ilya Kirillov 1e5cf80278 [analysis api, refactoring] move base test cases to base modules, improve service names 2022-04-13 12:53:00 +02:00
Ilya Kirillov 443ee4c860 [analysis api] allow generating test with for with more possible parameters 2022-04-13 12:52:59 +02:00
Ilya Kirillov 12e0254918 [analysis api] simplify dependent analysis mode tests 2022-04-13 12:52:58 +02:00
Ilya Kirillov 3206c0ce87 [analysis api, refactoring] get rid of HL name in class names 2022-04-13 12:52:57 +02:00
Ilya Kirillov 3838552a75 [analysis api] move some test framework parts to a separate module 2022-04-13 12:52:55 +02:00
Roman Golyshev 32fa2fc476 [FIR] Resolve receiver in qualified expressions with no selector
In qualified expression like `foo().`, selector expression is null.
Because of that the whole expression was marked as an error FIR
expression, and `foo()` part was not resolved at all (including
arguments and everything else).

This commit fixes the problem by providing receiver's FIR expression
as an underlying expression for error FIR expression. That way
it will be seen by all resolve transformers and will be successfully
resolved.

^KTIJ-21484 Fixed
2022-04-12 10:55:12 +00:00
Ilmir Usmanov 6e30ce2763 FE: Make synchronized suspend functions and lambdas error in 1.8
#KT-27333 Fixed
2022-04-11 12:02:30 +00:00
Ilmir Usmanov f473998e8b FIR: Make 'suspend fun', where 'suspend' is not builtin error in 1.8
#KT-49264
2022-04-11 12:02:29 +00:00
Dmitriy Novozhilov afad6a564a [Test] Pass CompilerConfiguration to AbstractEnvironmentConfigurator.registerCompilerExtensions
This is needed to provide ability to configure extensions depending on
  configuration of specific test
2022-04-08 09:42:00 +00:00