aboutsummaryrefslogtreecommitdiff
path: root/subprojects/analysis-kotlin-symbols/src/main
AgeCommit message (Collapse)Author
2023-10-11[K2] Migrate to new standalone API (#3201)Vadim Mishenev
* Migrate K2-Based dokka to use the new standalone mode API see https://youtrack.jetbrains.com/issue/KT-60884 * Do not use copy-n-pasted code from Analysis API in K2-Based Dokka see https://youtrack.jetbrains.com/issue/KT-60884 * Remove copy-n-pasted API from Analysis API in K2-Based Dokka as it's now unused see https://youtrack.jetbrains.com/issue/KT-60884 * Update version Analysis API to 1.9.30-dev-3330 --------- Co-authored-by: Ilya Kirillov <ilya.kirillov@jetbrains.com>
2023-10-11Avoid calling analyze on built-ins (#3200)Vadim Mishenev
Otherwise, `Caused by: org.jetbrains.kotlin.utils.exceptions.KotlinIllegalArgumentExceptionWithAttachments: Unexpected class org.jetbrains.kotlin.analysis.project.structure.KtBuiltinsModule at org.jetbrains.kotlin.analysis.low.level.api.fir.util.ExceptionUtilsKt.errorWithFirSpecificEntries(exceptionUtils.kt:50)`
2023-10-10[K2] Display enum entry members (#3180)Vadim Mishenev
2023-09-04[K2] Fix functional type and improve logging for unresolved link (#3157)Vadim Mishenev
* [K2] Fix functional type and improve logging for unresolved link For example `typealias CompletionHandler = (cause: Throwable?) -> Unit` has a functional type with no type arguments in K2. In K1 we have a usual generic type
2023-08-31Enable explicit API mode (#3139)Ignat Beresnev
2023-08-31Update copyright (#3149)Ignat Beresnev
* Add the default copyright profile and enable IDEA project settings * Add the license notice file
2023-08-28 Support Dokka K2 analysis (#3094)Vadim Mishenev
Dokka has its own documentable model to represent analyzed code. The analysis is performed by a compiler frontend. In K1 the compiler frontend has descriptors that use the underlying Binding Context (global shared stateful structure). Dokka just maps descriptors to Documentable by DefaultDescriptorToDocumentableTranslator. K2 compiler has FIR tree, which means “Frontend Intermediate Representation”, instead of Binding Context. But we do not use FIR in Dokka directly, since it is too low-level for analysis. The Kotlin compiler provides high-level Analysis API for this case. The API is used by KSP too. Analysis API represent elements of FIR (declarations, parameters and so on) as Symbols. For more details see KtSymbolByFirBuilder, KtSymbol. For Dokka symbol is the replacement of descriptor in K2. Also, to set up the environment of project analysis in K1 we use idea dependencies (or copy-past from there). In K2 for these aims, there is a Standalone mode for Analysis API.