Skip to content

Commit 0692321

Browse files
nicolas-guichardantonsviridov-src
authored andcommitted
Emit references to propeties as getter and setter
When we have a reference to a FirPropertySymbol, it is not obvious if it is used as a read or a write. Emit both just in case. No more failing tests!
1 parent 5ea2596 commit 0692321

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference
2424
import org.jetbrains.kotlin.fir.resolve.calls.FirSyntheticFunctionSymbol
2525
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
2626
import org.jetbrains.kotlin.fir.resolve.toClassLikeSymbol
27+
import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol
2728
import org.jetbrains.kotlin.lexer.KtTokens
2829
import org.jetbrains.kotlin.name.ClassId
2930
import org.jetbrains.kotlin.name.FqName
@@ -356,6 +357,16 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
356357
visitor?.visitClassReference(referencedKlass, getIdentifier(calleeReference.source ?: source))
357358
}
358359
}
360+
361+
// When encountering a reference to a property symbol, emit both getter and setter symbols
362+
if (resolvedSymbol is FirPropertySymbol) {
363+
resolvedSymbol.getterSymbol?.let {
364+
visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ?: source))
365+
}
366+
resolvedSymbol.setterSymbol?.let {
367+
visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ?: source))
368+
}
369+
}
359370
}
360371
}
361372
}

0 commit comments

Comments
 (0)