Skip to content

Commit 5ea2596

Browse files
nicolas-guichardantonsviridov-src
authored andcommitted
Also emit class reference for synthetic function symbols
Down to 1 failing test.
1 parent c959b1a commit 5ea2596

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ import org.jetbrains.kotlin.fir.analysis.extensions.FirAdditionalCheckersExtensi
2121
import org.jetbrains.kotlin.fir.declarations.*
2222
import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
2323
import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
24+
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol
2425
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
26+
import org.jetbrains.kotlin.fir.resolve.toClassLikeSymbol
2527
import org.jetbrains.kotlin.lexer.KtTokens
2628
import org.jetbrains.kotlin.name.ClassId
2729
import org.jetbrains.kotlin.name.FqName
@@ -346,6 +348,14 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
346348
val ktFile = context.containingFile?.sourceFile ?: return
347349
val visitor = visitors[ktFile]
348350
visitor?.visitSimpleNameExpression(calleeReference, getIdentifier(calleeReference.source ?: source))
351+
352+
val resolvedSymbol = calleeReference.resolvedSymbol
353+
if (resolvedSymbol.origin == FirDeclarationOrigin.SamConstructor && resolvedSymbol is FirSyntheticFunctionSymbol) {
354+
val referencedKlass = resolvedSymbol.resolvedReturnType.toClassLikeSymbol(context.session)
355+
if (referencedKlass != null) {
356+
visitor?.visitClassReference(referencedKlass, getIdentifier(calleeReference.source ?: source))
357+
}
358+
}
349359
}
350360
}
351361
}

0 commit comments

Comments
 (0)