Skip to content

Commit 4ac8b16

Browse files
author
Ernald Nicolas
committed
Touchups
1 parent 685091b commit 4ac8b16

File tree

8 files changed

+69
-43
lines changed

8 files changed

+69
-43
lines changed

semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerCheckers.kt

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,6 @@ import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirTypeAliasChecke
2222
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirTypeParameterChecker
2323
import org.jetbrains.kotlin.fir.analysis.checkers.declaration.FirValueParameterChecker
2424
import org.jetbrains.kotlin.fir.analysis.checkers.expression.ExpressionCheckers
25-
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirCallableReferenceAccessChecker
26-
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirPropertyAccessExpressionChecker
2725
import org.jetbrains.kotlin.fir.analysis.checkers.expression.FirQualifiedAccessExpressionChecker
2826
import org.jetbrains.kotlin.fir.analysis.extensions.FirAdditionalCheckersExtension
2927
import org.jetbrains.kotlin.fir.declarations.FirAnonymousFunction
@@ -36,8 +34,6 @@ import org.jetbrains.kotlin.fir.declarations.FirSimpleFunction
3634
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias
3735
import org.jetbrains.kotlin.fir.declarations.FirTypeParameter
3836
import org.jetbrains.kotlin.fir.declarations.FirValueParameter
39-
import org.jetbrains.kotlin.fir.expressions.FirCallableReferenceAccess
40-
import org.jetbrains.kotlin.fir.expressions.FirPropertyAccessExpression
4137
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
4238
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
4339
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
@@ -74,8 +70,10 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
7470
setOf(SemanticRegularClassChecker())
7571
override val constructorCheckers: Set<FirConstructorChecker> =
7672
setOf(SemanticConstructorChecker())
77-
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker> = setOf(SemanticSimpleFunctionChecker())
78-
override val anonymousFunctionCheckers: Set<FirAnonymousFunctionChecker> = setOf(SemanticAnonymousFunctionChecker())
73+
override val simpleFunctionCheckers: Set<FirSimpleFunctionChecker> =
74+
setOf(SemanticSimpleFunctionChecker())
75+
override val anonymousFunctionCheckers: Set<FirAnonymousFunctionChecker> =
76+
setOf(SemanticAnonymousFunctionChecker())
7977
override val propertyCheckers: Set<FirPropertyChecker> = setOf(SemanticPropertyChecker())
8078
override val valueParameterCheckers: Set<FirValueParameterChecker> =
8179
setOf(SemanticValueParameterChecker())
@@ -132,13 +130,20 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
132130

133131
class SemanticImportsChecker : FirFileChecker(MppCheckerKind.Common) {
134132
@OptIn(ExperimentalContracts::class)
135-
override fun check(declaration: FirFile, context: CheckerContext, reporter: DiagnosticReporter) {
133+
override fun check(
134+
declaration: FirFile,
135+
context: CheckerContext,
136+
reporter: DiagnosticReporter
137+
) {
136138
val ktFile = declaration.sourceFile ?: return
137139
declaration.imports.forEach { import ->
138140
val source = import.source ?: return@forEach
139141
val visitor = visitors[ktFile]
140142
val fqName = import.importedFqName ?: return@forEach
141-
val importedClassSymbol = context.session.symbolProvider.getClassLikeSymbolByClassId(ClassId.topLevel(fqName)) ?: return@forEach
143+
val importedClassSymbol =
144+
context.session.symbolProvider.getClassLikeSymbolByClassId(
145+
ClassId.topLevel(fqName))
146+
?: return@forEach
142147
visitor?.visitImport(importedClassSymbol, source)
143148
}
144149
}
@@ -191,7 +196,8 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
191196
}
192197
}
193198

194-
private class SemanticAnonymousFunctionChecker : FirAnonymousFunctionChecker(MppCheckerKind.Common) {
199+
private class SemanticAnonymousFunctionChecker :
200+
FirAnonymousFunctionChecker(MppCheckerKind.Common) {
195201
@OptIn(ExperimentalContracts::class)
196202
override fun check(
197203
declaration: FirAnonymousFunction,

semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/AnalyzerParamsProvider.kt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,5 @@ open class AnalyzerParamsProvider(
2525
val callback: (Semanticdb.TextDocument) -> Unit = callback
2626
}
2727

28-
val FirSession.analyzerParamsProvider: AnalyzerParamsProvider by FirSession.sessionComponentAccessor()
28+
val FirSession.analyzerParamsProvider: AnalyzerParamsProvider by FirSession
29+
.sessionComponentAccessor()

semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SemanticdbTextDocumentBuilder.kt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ import org.jetbrains.kotlin.KtSourceElement
1212
import org.jetbrains.kotlin.KtSourceFile
1313
import org.jetbrains.kotlin.com.intellij.lang.LighterASTNode
1414
import org.jetbrains.kotlin.com.intellij.lang.java.JavaLanguage
15-
import org.jetbrains.kotlin.com.intellij.navigation.NavigationItem
1615
import org.jetbrains.kotlin.com.intellij.openapi.util.Ref
1716
import org.jetbrains.kotlin.com.intellij.util.diff.FlyweightCapableTreeStructure
1817
import org.jetbrains.kotlin.descriptors.*
@@ -38,7 +37,6 @@ import org.jetbrains.kotlin.fir.types.coneTypeSafe
3837
import org.jetbrains.kotlin.idea.KotlinLanguage
3938
import org.jetbrains.kotlin.lexer.KtTokens
4039
import org.jetbrains.kotlin.psi
41-
import org.jetbrains.kotlin.psi.KtPropertyAccessor
4240
import org.jetbrains.kotlin.text
4341

4442
@ExperimentalContracts

semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SemanticdbVisitor.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ import org.jetbrains.kotlin.KtSourceFile
88
import org.jetbrains.kotlin.fir.declarations.FirClass
99
import org.jetbrains.kotlin.fir.declarations.FirConstructor
1010
import org.jetbrains.kotlin.fir.declarations.FirFunction
11-
import org.jetbrains.kotlin.fir.declarations.FirImport
1211
import org.jetbrains.kotlin.fir.declarations.FirProperty
1312
import org.jetbrains.kotlin.fir.declarations.FirPropertyAccessor
1413
import org.jetbrains.kotlin.fir.declarations.FirTypeAlias

semanticdb-kotlinc/src/main/kotlin/com/sourcegraph/semanticdb_kotlinc/SymbolsCache.kt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,8 @@ class GlobalSymbolsCache(testing: Boolean = false) : Iterable<Symbol> {
115115
return locals + symbol
116116

117117
// if is a top-level function or variable, Kotlin creates a wrapping class
118-
if (ownerSymbol !is FirClassSymbol && (symbol is FirFunctionSymbol || symbol is FirPropertySymbol)) {
118+
if (ownerSymbol !is FirClassSymbol &&
119+
(symbol is FirFunctionSymbol || symbol is FirPropertySymbol)) {
119120
owner =
120121
Symbol.createGlobal(
121122
owner, SemanticdbSymbolDescriptor(Kind.TYPE, sourceFileToClassSymbol(symbol)))
@@ -152,7 +153,11 @@ class GlobalSymbolsCache(testing: Boolean = false) : Iterable<Symbol> {
152153
@OptIn(SymbolInternals::class)
153154
private fun sourceFileToClassSymbol(symbol: FirBasedSymbol<*>): String {
154155
val callableSymbol = (symbol as? FirCallableSymbol<*>) ?: return ""
155-
val packageName = (callableSymbol.getContainingSymbol(symbol.moduleData.session) as? FirFileSymbol)?.fir?.name ?: symbol.callableId.packageName.asString()
156+
val packageName =
157+
(callableSymbol.getContainingSymbol(symbol.moduleData.session) as? FirFileSymbol)
158+
?.fir
159+
?.name
160+
?: symbol.callableId.packageName.asString()
156161
return "${packageName}.${callableSymbol.callableId.callableName.asString()}"
157162
}
158163

semanticdb-kotlinc/src/test/kotlin/com/sourcegraph/semanticdb_kotlinc/test/AnalyzerTest.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -611,7 +611,9 @@ class AnalyzerTest {
611611
inline fun docstrings(msg: String): Int { return msg.length }
612612
""".trimIndent())
613613
document.assertDocumentation("`sample/Docstrings`#", "Example class docstring")
614-
document.assertDocumentation("`Test.kt.docstrings`#docstringssample.docstrings(kotlin/String): kotlin/Int.", "Example method docstring")
614+
document.assertDocumentation(
615+
"`Test.kt.docstrings`#docstringssample.docstrings(kotlin/String): kotlin/Int.",
616+
"Example method docstring")
615617
}
616618

617619
private fun TextDocument.assertDocumentation(symbol: String, expectedDocumentation: String) {

semanticdb-kotlinc/src/test/kotlin/com/sourcegraph/semanticdb_kotlinc/test/SemanticdbSymbolsTest.kt

Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -29,15 +29,18 @@ class SemanticdbSymbolsTest {
2929
|""".trimMargin()),
3030
symbolsCacheData =
3131
SymbolCacheData(
32-
listOf("Test#sample.sample(): kotlin/Unit.".symbol(), "Test#sample.sample(kotlin/Int): kotlin/Unit.".symbol()),
32+
listOf(
33+
"Test#sample.sample(): kotlin/Unit.".symbol(),
34+
"Test#sample.sample(kotlin/Int): kotlin/Unit.".symbol()),
3335
)),
3436
ExpectedSymbols(
3537
"Inline class constructor",
3638
SourceFile.testKt(
3739
"""
3840
|class Test(val x: Int)
3941
|""".trimMargin()),
40-
symbolsCacheData = SymbolCacheData(listOf("Test#Test.Test(kotlin/Int): Test.".symbol()))),
42+
symbolsCacheData =
43+
SymbolCacheData(listOf("Test#Test.Test(kotlin/Int): Test.".symbol()))),
4144
ExpectedSymbols(
4245
"Inline + secondary class constructors",
4346
SourceFile.testKt(
@@ -65,7 +68,10 @@ class SemanticdbSymbolsTest {
6568
|""".trimMargin()),
6669
symbolsCacheData =
6770
SymbolCacheData(
68-
listOf("Test#sample.sample(): kotlin/Unit.".symbol(), "Test#test.test(): kotlin/Unit.".symbol(), "Test#test.test(kotlin/Int): kotlin/Unit.".symbol()))),
71+
listOf(
72+
"Test#sample.sample(): kotlin/Unit.".symbol(),
73+
"Test#test.test(): kotlin/Unit.".symbol(),
74+
"Test#test.test(kotlin/Int): kotlin/Unit.".symbol()))),
6975
ExpectedSymbols(
7076
"Top level overloaded functions",
7177
SourceFile.testKt(
@@ -75,7 +81,9 @@ class SemanticdbSymbolsTest {
7581
|""".trimMargin()),
7682
symbolsCacheData =
7783
SymbolCacheData(
78-
listOf("`Test.kt.test`#test.test(): kotlin/Unit.".symbol(), "`Test.kt.test`#test.test(kotlin/Int): kotlin/Unit.".symbol()))),
84+
listOf(
85+
"`Test.kt.test`#test.test(): kotlin/Unit.".symbol(),
86+
"`Test.kt.test`#test.test(kotlin/Int): kotlin/Unit.".symbol()))),
7987
ExpectedSymbols(
8088
"Annotations incl annotation type alias",
8189
SourceFile.testKt(
@@ -205,7 +213,6 @@ class SemanticdbSymbolsTest {
205213
symbolsCacheData = SymbolCacheData(listOf("`java/lang/System`#err.".symbol()))))
206214
.mapCheckExpectedSymbols()
207215

208-
209216
@TestFactory
210217
fun `properties with getters-setters`() =
211218
listOf(
@@ -231,7 +238,8 @@ class SemanticdbSymbolsTest {
231238
},
232239
SymbolOccurrence {
233240
role = Role.DEFINITION
234-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
241+
symbol =
242+
"`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
235243
range {
236244
startLine = 0
237245
startCharacter = 0
@@ -241,7 +249,8 @@ class SemanticdbSymbolsTest {
241249
},
242250
SymbolOccurrence {
243251
role = Role.DEFINITION
244-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
252+
symbol =
253+
"`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
245254
range {
246255
startLine = 0
247256
startCharacter = 0
@@ -273,7 +282,8 @@ class SemanticdbSymbolsTest {
273282
},
274283
SymbolOccurrence {
275284
role = Role.DEFINITION
276-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
285+
symbol =
286+
"`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
277287
range {
278288
startLine = 1
279289
startCharacter = 4
@@ -283,14 +293,16 @@ class SemanticdbSymbolsTest {
283293
},
284294
SymbolOccurrence {
285295
role = Role.DEFINITION
286-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
296+
symbol =
297+
"`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
287298
range {
288299
startLine = 0
289300
startCharacter = 0
290301
endLine = 0
291302
endCharacter = 36
292303
}
293-
},)),
304+
},
305+
)),
294306
),
295307
ExpectedSymbols(
296308
"top level properties - explicit setter",
@@ -315,7 +327,8 @@ class SemanticdbSymbolsTest {
315327
},
316328
SymbolOccurrence {
317329
role = Role.DEFINITION
318-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
330+
symbol =
331+
"`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
319332
range {
320333
startLine = 0
321334
startCharacter = 0
@@ -325,7 +338,8 @@ class SemanticdbSymbolsTest {
325338
},
326339
SymbolOccurrence {
327340
role = Role.DEFINITION
328-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
341+
symbol =
342+
"`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
329343
range {
330344
startLine = 1
331345
startCharacter = 4
@@ -358,7 +372,8 @@ class SemanticdbSymbolsTest {
358372
},
359373
SymbolOccurrence {
360374
role = Role.DEFINITION
361-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
375+
symbol =
376+
"`Test.kt.accessor`#accessorspecial.accessor(): kotlin/Int."
362377
range {
363378
startLine = 1
364379
startCharacter = 4
@@ -368,7 +383,8 @@ class SemanticdbSymbolsTest {
368383
},
369384
SymbolOccurrence {
370385
role = Role.DEFINITION
371-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
386+
symbol =
387+
"`Test.kt.accessor`#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
372388
range {
373389
startLine = 2
374390
startCharacter = 4
@@ -443,19 +459,18 @@ class SemanticdbSymbolsTest {
443459
},
444460
SymbolOccurrence {
445461
role = Role.DEFINITION
446-
symbol = "Test#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
462+
symbol =
463+
"Test#accessorspecial.accessor(kotlin/Int): kotlin/Unit."
447464
range {
448465
startLine = 0
449466
startCharacter = 11
450467
endLine = 0
451468
endCharacter = 25
452469
}
453470
},
454-
)))
455-
)
471+
))))
456472
.mapCheckExpectedSymbols()
457473

458-
459474
@TestFactory
460475
fun `class constructors`() =
461476
listOf(
@@ -551,8 +566,7 @@ class SemanticdbSymbolsTest {
551566
endCharacter = 34
552567
}
553568
},
554-
)))
555-
)
569+
))))
556570
.mapCheckExpectedSymbols()
557571

558572
@TestFactory
@@ -570,7 +584,8 @@ class SemanticdbSymbolsTest {
570584
listOf(
571585
SymbolOccurrence {
572586
role = Role.REFERENCE
573-
symbol = "`java/lang/Runnable`#runjava.lang.run(): kotlin/Unit."
587+
symbol =
588+
"`java/lang/Runnable`#runjava.lang.run(): kotlin/Unit."
574589
range {
575590
startLine = 0
576591
startCharacter = 8
@@ -580,7 +595,8 @@ class SemanticdbSymbolsTest {
580595
},
581596
SymbolOccurrence {
582597
role = Role.REFERENCE
583-
symbol = "`java.lang.Runnable`#Runnablejava.lang.Runnable(kotlin/Function0<kotlin/Unit>): java/lang/Runnable."
598+
symbol =
599+
"`java.lang.Runnable`#Runnablejava.lang.Runnable(kotlin/Function0<kotlin/Unit>): java/lang/Runnable."
584600
range {
585601
startLine = 0
586602
startCharacter = 8
@@ -619,7 +635,8 @@ class SemanticdbSymbolsTest {
619635
}
620636
},
621637
SymbolInformation {
622-
symbol = "`Test.kt.accessor`#accessorspecial.accessor(): kotlin/String."
638+
symbol =
639+
"`Test.kt.accessor`#accessorspecial.accessor(): kotlin/String."
623640
displayName = "x"
624641
language = Language.KOTLIN
625642
documentation {

0 commit comments

Comments
 (0)