@@ -131,7 +131,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
131131 val names = source.treeStructure.findLastDescendant(source.lighterASTNode) { true }
132132 if (names != null ) {
133133 eachFqNameElement(fqName, source.treeStructure, names) { fqName, name ->
134- visitor?.visitPackage(fqName, name)
134+ visitor?.visitPackage(fqName, name, context )
135135 }
136136 }
137137 }
@@ -152,13 +152,13 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
152152 fqName.parent(), fqName.shortName())
153153
154154 if (klass != null ) {
155- visitor?.visitClassReference(klass, name)
155+ visitor?.visitClassReference(klass, name, context )
156156 } else if (callables.isNotEmpty()) {
157157 for (callable in callables) {
158- visitor?.visitCallableReference(callable, name)
158+ visitor?.visitCallableReference(callable, name, context )
159159 }
160160 } else {
161- visitor?.visitPackage(fqName, name)
161+ visitor?.visitPackage(fqName, name, context )
162162 }
163163 }
164164 }
@@ -176,7 +176,15 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
176176 val source = declaration.source ? : return
177177 val ktFile = context.containingFile?.sourceFile ? : return
178178 val visitor = visitors[ktFile]
179- visitor?.visitClassOrObject(declaration, getIdentifier(source))
179+ visitor?.visitClassOrObject(declaration, getIdentifier(source), context)
180+
181+ for (superType in declaration.superTypeRefs) {
182+ val superSymbol = superType.toClassLikeSymbol(context.session)
183+ val superSource = superType.source
184+ if (superSymbol != null && superSource != null ) {
185+ visitor?.visitClassReference(superSymbol, superSource, context)
186+ }
187+ }
180188 }
181189 }
182190
@@ -202,9 +210,9 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
202210 .findChildByType(source.lighterASTNode, KtTokens .CONSTRUCTOR_KEYWORD )
203211 ?.toKtLightSourceElement(source.treeStructure)
204212
205- visitor?.visitPrimaryConstructor(declaration, constructorKeyboard ? : getIdentifier(klassSource))
213+ visitor?.visitPrimaryConstructor(declaration, constructorKeyboard ? : getIdentifier(klassSource), context )
206214 } else {
207- visitor?.visitSecondaryConstructor(declaration, getIdentifier(source))
215+ visitor?.visitSecondaryConstructor(declaration, getIdentifier(source), context )
208216 }
209217 }
210218 }
@@ -219,7 +227,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
219227 val source = declaration.source ? : return
220228 val ktFile = context.containingFile?.sourceFile ? : return
221229 val visitor = visitors[ktFile]
222- visitor?.visitNamedFunction(declaration, getIdentifier(source))
230+ visitor?.visitNamedFunction(declaration, getIdentifier(source), context )
223231 }
224232 }
225233
@@ -234,7 +242,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
234242 val source = declaration.source ? : return
235243 val ktFile = context.containingFile?.sourceFile ? : return
236244 val visitor = visitors[ktFile]
237- visitor?.visitNamedFunction(declaration, source)
245+ visitor?.visitNamedFunction(declaration, source, context )
238246 }
239247 }
240248
@@ -248,12 +256,12 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
248256 val source = declaration.source ? : return
249257 val ktFile = context.containingFile?.sourceFile ? : return
250258 val visitor = visitors[ktFile]
251- visitor?.visitProperty(declaration, getIdentifier(source))
259+ visitor?.visitProperty(declaration, getIdentifier(source), context )
252260
253261 val klass = declaration.returnTypeRef.toClassLikeSymbol(context.session)
254262 val klassSource = declaration.returnTypeRef.source
255263 if (klass != null && klassSource != null ) {
256- visitor?.visitClassReference(klass, getIdentifier(klassSource))
264+ visitor?.visitClassReference(klass, getIdentifier(klassSource), context )
257265 }
258266 }
259267 }
@@ -268,7 +276,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
268276 val source = declaration.source ? : return
269277 val ktFile = context.containingFile?.sourceFile ? : return
270278 val visitor = visitors[ktFile]
271- visitor?.visitParameter(declaration, getIdentifier(source))
279+ visitor?.visitParameter(declaration, getIdentifier(source), context )
272280 }
273281 }
274282
@@ -282,7 +290,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
282290 val source = declaration.source ? : return
283291 val ktFile = context.containingFile?.sourceFile ? : return
284292 val visitor = visitors[ktFile]
285- visitor?.visitTypeParameter(declaration, getIdentifier(source))
293+ visitor?.visitTypeParameter(declaration, getIdentifier(source), context )
286294 }
287295 }
288296
@@ -296,7 +304,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
296304 val source = declaration.source ? : return
297305 val ktFile = context.containingFile?.sourceFile ? : return
298306 val visitor = visitors[ktFile]
299- visitor?.visitTypeAlias(declaration, getIdentifier(source))
307+ visitor?.visitTypeAlias(declaration, getIdentifier(source), context )
300308 }
301309 }
302310
@@ -328,7 +336,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
328336 getIdentifier(source)
329337 }
330338
331- visitor?.visitPropertyAccessor(declaration, identifierSource)
339+ visitor?.visitPropertyAccessor(declaration, identifierSource, context )
332340 }
333341 }
334342
@@ -348,23 +356,23 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
348356
349357 val ktFile = context.containingFile?.sourceFile ? : return
350358 val visitor = visitors[ktFile]
351- visitor?.visitSimpleNameExpression(calleeReference, getIdentifier(calleeReference.source ? : source))
359+ visitor?.visitSimpleNameExpression(calleeReference, getIdentifier(calleeReference.source ? : source), context )
352360
353361 val resolvedSymbol = calleeReference.resolvedSymbol
354362 if (resolvedSymbol.origin == FirDeclarationOrigin .SamConstructor && resolvedSymbol is FirSyntheticFunctionSymbol ) {
355363 val referencedKlass = resolvedSymbol.resolvedReturnType.toClassLikeSymbol(context.session)
356364 if (referencedKlass != null ) {
357- visitor?.visitClassReference(referencedKlass, getIdentifier(calleeReference.source ? : source))
365+ visitor?.visitClassReference(referencedKlass, getIdentifier(calleeReference.source ? : source), context )
358366 }
359367 }
360368
361369 // When encountering a reference to a property symbol, emit both getter and setter symbols
362370 if (resolvedSymbol is FirPropertySymbol ) {
363371 resolvedSymbol.getterSymbol?.let {
364- visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source))
372+ visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source), context )
365373 }
366374 resolvedSymbol.setterSymbol?.let {
367- visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source))
375+ visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source), context )
368376 }
369377 }
370378 }
0 commit comments