Jinseong Jeon
501ec4fdbf
AA: fix typo in KtLibrarySourceModule description
2023-05-01 16:26:54 +02:00
Jinseong Jeon
5282e60328
AA standalone: register LL FIR session configurator extension
...
Also, introduce an API to register user's own project extension points
2023-04-26 01:01:53 +00:00
Jinseong Jeon
5298abf2d6
AA/LC: introduce an API to find script files
2023-04-25 14:49:03 +02:00
Jinseong Jeon
f9086daf4d
SLC: add support for .kts
...
^KTIJ-21108
^KT-50241
^KT-55626 Fixed
2023-04-25 14:49:03 +02:00
Jinseong Jeon
8544081c46
SLC: enable enum test case
2023-04-24 11:42:06 +00:00
Jinseong Jeon
0ca86c86be
SLC: add nullability annotation to value param of non-synthetic enum members
...
^KT-57567
2023-04-19 16:14:23 +02:00
Jinseong Jeon
9fe30bfc12
SLC: regression test for final modifier on enum members
...
^KT-57567
2023-04-19 16:14:23 +02:00
Jinseong Jeon
fbe558a0de
AA FIR: handle smartcasted arg when building call's argument mapping
...
^KTIJ-25112 Fixed
2023-04-17 13:57:08 +02:00
Jinseong Jeon
ed4cc99db3
FIR: use symbol modality to ensure the retrieval of lazily resolved status
...
^KT-57578
2023-04-17 10:59:04 +02:00
Jinseong Jeon
5403cc7feb
SLC: fix type mapping mode for var
...
^KT-57578
2023-04-17 10:59:03 +02:00
Jinseong Jeon
95491f223c
FIR: fix subtle isFinal counterpart in ConeTypeContext
...
^KT-57578 Fixed
2023-04-17 10:59:03 +02:00
Jinseong Jeon
98074c4849
SLC: merge field's static modifier setting
2023-03-31 12:21:17 +00:00
Jinseong Jeon
107b0229ef
SLC: use partition to distinguish ctor properties from regular member properties
2023-03-31 12:21:16 +00:00
Jinseong Jeon
3c982cfaa3
SLC: mangle internal setter name
2023-03-31 12:21:16 +00:00
Jinseong Jeon
91925b947d
SLC: fix visibility of lateinit var
...
^KT-57569 Fixed
2023-03-31 12:21:15 +00:00
Jinseong Jeon
d8902816d0
SLC: fix non-last vararg parameter type
...
^KT-57547 Fixed
2023-03-30 12:07:01 +00:00
Jinseong Jeon
0ac3fae9ab
LC: commonize facade for multi-file class
2023-03-29 18:51:03 +02:00
Jinseong Jeon
3b09313192
SLC: fix inheritance list for subtype of Comparator
...
^KT-57548 Fixed
2023-03-29 11:27:34 +02:00
Jinseong Jeon
1b3b554084
SLC: force boxed return type when needed
...
e.g., when overriding a function whose return type is not primitive
^KT-57579 Fixed
2023-03-29 11:27:34 +02:00
Jinseong Jeon
5455942859
AA: handle underscore as type arguments
...
^KTIJ-24742 Fixed
2023-02-23 13:02:34 +01:00
Jinseong Jeon
527fc68778
ULC: match value parameter name of enum's valueOf
2023-02-20 14:07:01 +01:00
Jinseong Jeon
88b07f5287
SLC: keep annotations on type when converting to PsiType
...
^KT-55815 Fixed
2023-02-09 19:53:45 +01:00
Jinseong Jeon
4a872928dd
AA standalone: use IJ platform in headless mode
2023-02-03 07:56:37 +01:00
Jinseong Jeon
fc2da32eb6
[references] introduce a dummy reference resolve helper
...
...because the implementation of reference resolution helper in IDE is
not always available (e.g., Android Lint CLI).
2023-01-24 17:54:00 +01:00
Jinseong Jeon
2da4693cc0
AA: do not use full decompilation for built-ins
...
This is the major performance bottleneck for AA/UAST artifacts rollout
to Android Lint. KT stubs are good/fast enough.
2023-01-17 16:51:34 +01:00
Jinseong Jeon
669afdd463
AA: place KotlinStaticDeclarationIndex in its own file with less visibility
2023-01-17 16:51:34 +01:00
Jinseong Jeon
b088e742ae
Introduce a util to copy TypeMappingMode for UAST
2023-01-17 13:56:42 +01:00
Jinseong Jeon
e89a387cd4
Optimal type mapping modes for UAST
...
As shown in (DEFALUT | GENERIC_ARGUMENT)_UAST, UAST's PsiType mapping
needs an automatic expansion of type alias. This commit makes utils that
generate optimal type mapping modes for return / parameter to consider
if this is used for UAST. In that case, utils will set `mapTypeAliases`
true so that typealias (even inside type arguments) can be expanded
properly.
2023-01-17 13:56:41 +01:00
Jinseong Jeon
2dca2b4827
AA FE1.0: Fix StackOverflowError during resolution to a function w/ recursive type parameter
...
^KT-55825 Fixed
2023-01-12 19:48:21 +09:00
Jinseong Jeon
4beb55179b
AA: expected type for expression passed to vararg
2022-12-21 17:05:00 +09:00
Jinseong Jeon
5f986fd467
ULC: fix PsiMethod#getThrowsList for accessors
...
^KTIJ-17761
2022-12-11 15:22:12 +00:00
Jinseong Jeon
cc7083d59e
SLC: implement PsiMethod#getThrowsList
2022-12-11 15:22:11 +00:00
Jinseong Jeon
8eccb552a3
Migrate descriptor-related util from IR to FE1.0
...
so that FE1.0 UAST can avoid depending on backend IR
^KTIJ-23602
2022-11-29 21:52:55 +00:00
Jinseong Jeon
c79d65536b
Gracefully handle erroneous super type during local type approximation
...
^KTIJ-23528 Fixed
2022-11-22 20:16:40 +01:00
Jinseong Jeon
f2bc25c71d
SLC: fix visibility/static modifer of property in companion
2022-11-21 15:55:13 +01:00
Jinseong Jeon
e2901c81ac
SLC: populate fields from companion in annotation
2022-11-21 15:55:12 +01:00
Jinseong Jeon
6caf384bad
AA FIR: handle Java annotation vararg values
2022-11-17 12:58:14 +01:00
Jinseong Jeon
fcba1f215a
AA: handle erroneous type in nested type argument
2022-11-16 14:13:43 +01:00
Jinseong Jeon
2131cb4fe0
AA FIR: functional type for anonymous function
...
^KTIJ-17657 In progress
2022-11-11 10:15:44 +01:00
Jinseong Jeon
b2e239a542
AA: tests about equals on sealed/data class
...
^KT-54844 In Progress
2022-11-09 07:12:36 +01:00
Jinseong Jeon
4497be0b68
AA: do not parse signature with NO_NAME_PROVIDED
...
^KTIJ-23503 Fixed
2022-11-04 10:42:19 +01:00
Jinseong Jeon
7f6cad6fb3
FIR: ensure STATUS resolve phase before reading valueClassRepresentation
2022-11-02 18:04:38 +01:00
Jinseong Jeon
542ca68aba
AA: add test about PsiType for @JvmInline value class
2022-11-02 18:04:38 +01:00
Jinseong Jeon
c9a2e10dd7
AA: merge single/multi modules tests for PsiTypeProvider
...
...because single-module test is also multi-module test
2022-11-02 17:38:16 +01:00
Jinseong Jeon
d98081dce2
AA: introduce MPP tests for PsiTypeProvider
2022-11-02 17:38:16 +01:00
Jinseong Jeon
dc7506c40a
AA: utilize logic in PsiTypeProvider test
...
...to reuse them in upcoming multi-module tests
2022-11-02 17:38:15 +01:00
Jinseong Jeon
5bca3c6841
AA: rename test api for better clarification
...
Many sub tests are implementing the same name, doTestByFileStructure,
which indeed are based on the list of KtFile in a single module.
Rather, this one should be named after "ModuleStructure".
2022-11-02 17:38:15 +01:00
Jinseong Jeon
8d8d0d9922
SLC: add marker interface for collection inheritor
2022-10-27 14:41:24 +02:00
Jinseong Jeon
8016225519
ULC: make file/class names match
2022-10-27 10:36:40 +02:00
Jinseong Jeon
14213ddad2
AA: fix expected type for lambda with explicit label
2022-10-24 22:07:05 +02:00
Jinseong Jeon
dbf0ba442a
(U|S)LC: fix getText for modifier list / accessor
2022-10-19 14:17:36 +02:00
Jinseong Jeon
e1344968ec
(S|U)LC: fix getTextOffset and getTextRange for modifier list of accessors
...
in a similar way 36e1149e did for property accessors
2022-10-19 14:17:36 +02:00
Jinseong Jeon
19151fa866
SLC: fix getTextOffsets and getTextRange for accessors
...
Same idea from LC fix at 36e1149e
2022-10-19 14:17:36 +02:00
Jinseong Jeon
ae437716d6
SLC: remove unnecessary overridden kotlinOrigin for accessor
...
Same as the declaration in the base class SymbolLightMemberBase
2022-10-19 14:17:36 +02:00
Jinseong Jeon
fc1eb02590
SLC: implement PsiVariable#computeConstantValue for light field
2022-10-02 13:41:12 +02:00
Jinseong Jeon
a58e0803fb
ULC: output update (annotation on enum entry)
...
Input has `// CHECK_BY_JAVA_FILE`
and thus ULC output as .java file should be updated too
when input was changed to add annotation on enum entry
(at commit c5916e1d )
Tested by UltraLightClassLoadingTestGenerated in IntelliJ
2022-10-02 13:41:12 +02:00
Jinseong Jeon
2fdedf8251
AA FIR: unwrap fake override constructor
2022-10-02 13:39:49 +02:00
Jinseong Jeon
dd7fc7f4ae
AA FIR: avoid unsafe argument retrieval during const evaluation
2022-09-18 17:22:02 +02:00
Jinseong Jeon
efb867b46c
AA: do not create symbol pointers for (intersection|substitution) overridden members
2022-09-17 16:43:12 +02:00
Jinseong Jeon
e50da634bc
AA: add tests for resolution to built-ins
2022-09-17 16:43:12 +02:00
Jinseong Jeon
c7347cfb48
LL FIR: module kind for built-ins module
2022-09-17 16:43:11 +02:00
Jinseong Jeon
f9e086a6e3
S/LC: avoid building light classes for decompiled built-ins
2022-09-17 16:43:11 +02:00
Jinseong Jeon
0b63f294ab
LL FIR: remove unnecessary type cast
...
For compiled symbol, it can be either library or built-ins session
2022-09-17 16:43:11 +02:00
Jinseong Jeon
7529965619
LL FIR: cache built-ins module to session
2022-09-17 16:43:11 +02:00
Jinseong Jeon
c2daa26118
AA: use fully decompiled file when indexing built-ins
2022-09-17 16:43:10 +02:00
Jinseong Jeon
5bf333f6f5
AA: look up built-ins module for deserialized declarations from built-ins
2022-09-17 16:43:10 +02:00
Jinseong Jeon
df95602e06
AA: populate index for built-ins
2022-09-17 16:43:10 +02:00
Jinseong Jeon
5721b3b73c
AA: one representative lib module from compiler configuration
...
Split lib modules, which will be useful for reusable lib modules (if
there are multiple source modules that depend on same lib modules), are
not quite necessary for a project structure built from compiler
configuration. Those rather trigger OOM if lib modules' scopes are not
disjoint.
2022-09-15 21:27:13 +02:00
Jinseong Jeon
e5b75dcd72
AA: cache PackagePartProvider per scope
2022-09-15 20:06:41 +02:00
Jinseong Jeon
2580a5c233
AA: migrate PackagePartProviderFactory to general API providers
2022-09-15 20:06:40 +02:00
Jinseong Jeon
1464f33c5d
AA FIR: error annotation value for erroneous argument in class reference
2022-09-15 12:36:31 +02:00
Jinseong Jeon
61d339e8f2
SLC: containingFile for all SLC classes, including enum entry
2022-09-14 13:39:31 +02:00
Jinseong Jeon
217829d1c6
AA: fix typo in property name
2022-09-14 13:03:30 +02:00
Jinseong Jeon
836b6dae9f
AA FIR: constant evaluation for String
2022-09-14 12:52:08 +02:00
Jinseong Jeon
a77933ca9a
AA: use appropriate type mapping mode in eq checker
2022-09-13 18:00:40 +02:00
Jinseong Jeon
3c74751f73
AA: look up inner class from parent class stub
2022-09-13 18:00:40 +02:00
Jinseong Jeon
68519af97a
AA: add tests about platform types
...
...as declaration return type or expression type
2022-09-09 15:02:23 +02:00
Jinseong Jeon
b9501e7452
SLC: suppress final on interface functions
...
even bridges to functions in companion object
2022-09-09 14:47:10 +02:00
Jinseong Jeon
3eb68a6ee8
S/LC: fix default visibility of constructor of sealed class
2022-09-09 14:38:12 +02:00
Jinseong Jeon
5225c51a5a
SLC: handle @JvmOverloads on constructor
2022-09-09 14:38:12 +02:00
Jinseong Jeon
d4efc8d81d
SLC: use partition to distinguish ctor properties from regular members
2022-09-09 14:38:11 +02:00
Jinseong Jeon
4859524115
SLC: account for upperbounds when computing nullability of type parameter
2022-09-09 14:38:11 +02:00
Jinseong Jeon
79686ba242
AA FE1.0: don't return psi for fake overrides
2022-08-20 00:50:10 +02:00
Jinseong Jeon
25f7554a31
AA FIR: constant evaluation for Java field
2022-08-20 00:50:09 +02:00
Jinseong Jeon
9e35815ae3
AA: fail-safe path retrieval of source files
...
Also, apply file extension-based filtering since javaSourceRoots is
supposed to refer to either KotlinSourceRoot or JavaSourceRoot.
2022-08-17 21:32:29 +02:00
Jinseong Jeon
1b79ee89ba
AA: drop ProjectStructureProvider#getKtBinaryModules
...
Instead, provide an option to register PSI declaration provider inside
Analysis API session builder where we can retrieve all necessary pieces,
including CoreJarFileSystem, PackagePartProvider, and binary modules
from internal project structure provider.
2022-08-17 19:16:18 +02:00
Jinseong Jeon
2a864b3685
AA: add tests for PsiDeclarationAndKtSymbolEqualityChecker
2022-08-17 19:16:17 +02:00
Jinseong Jeon
846ab7d97b
AA: revamp standalone-mode tests
2022-08-17 19:16:17 +02:00
Jinseong Jeon
ed92cc43c7
AA: introduce eq checker to handle ambiguous PSI from binary module
2022-08-17 13:35:29 +02:00
Jinseong Jeon
b173b1fe24
AA: use package part info (if available) when searching for PSI from binary module
2022-08-10 17:34:48 +02:00
Jinseong Jeon
d0a8eb5c54
AA FIR: use resolved annotation argument mapping
2022-08-10 17:34:48 +02:00
Jinseong Jeon
56a5d883c0
AA FIR: handle (aliased)? annotation w/ vararg parameter
2022-08-10 17:34:48 +02:00
Jinseong Jeon
4531080858
AA: introduce KtNotUnderContentRootModule impl to standalone mode
...
to gracefully handle element/file/etc without a binding module.
This could happen, e.g.,
1) source PSI created from KtPsiFactory, which uses literally dummy.kt
2) debugger that creates a code fragment on-the-fly
3) on-air analysis of non-physical files
2022-08-06 13:18:55 +02:00
Jinseong Jeon
e8e88b4eb2
AA: deprecate utils in StandaloneUtils
...
...in favor of StandaloneAnalysisAPISessionBuilder
2022-08-06 13:18:54 +02:00
Jinseong Jeon
009182af63
FIR LC: use the data path from the test base
2022-08-03 08:57:37 +02:00
Jinseong Jeon
fc2f4d814e
FIR LC: test exact annotation owner kind
2022-08-03 08:57:37 +02:00
Jinseong Jeon
91946651d2
FIR LC: fix potentially ignored visit in light parameter
2022-08-03 08:57:37 +02:00
Jinseong Jeon
199219483e
FIR LC: set modifier list as a parent of light annotations
...
^KTIJ-22354 Fixed
2022-08-03 08:57:37 +02:00
Jinseong Jeon
79030c9252
FIR LC: remove redundant util in tests
2022-08-03 08:57:36 +02:00
Jinseong Jeon
6b0a5e2908
AA: register LLFir(Library|Builtin)SessionFactory
2022-08-02 17:33:45 +02:00