@@ -131,7 +131,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
131
131
val names = source.treeStructure.findLastDescendant(source.lighterASTNode) { true }
132
132
if (names != null ) {
133
133
eachFqNameElement(fqName, source.treeStructure, names) { fqName, name ->
134
- visitor?.visitPackage(fqName, name)
134
+ visitor?.visitPackage(fqName, name, context )
135
135
}
136
136
}
137
137
}
@@ -152,13 +152,13 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
152
152
fqName.parent(), fqName.shortName())
153
153
154
154
if (klass != null ) {
155
- visitor?.visitClassReference(klass, name)
155
+ visitor?.visitClassReference(klass, name, context )
156
156
} else if (callables.isNotEmpty()) {
157
157
for (callable in callables) {
158
- visitor?.visitCallableReference(callable, name)
158
+ visitor?.visitCallableReference(callable, name, context )
159
159
}
160
160
} else {
161
- visitor?.visitPackage(fqName, name)
161
+ visitor?.visitPackage(fqName, name, context )
162
162
}
163
163
}
164
164
}
@@ -176,7 +176,15 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
176
176
val source = declaration.source ? : return
177
177
val ktFile = context.containingFile?.sourceFile ? : return
178
178
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
+ }
180
188
}
181
189
}
182
190
@@ -202,9 +210,9 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
202
210
.findChildByType(source.lighterASTNode, KtTokens .CONSTRUCTOR_KEYWORD )
203
211
?.toKtLightSourceElement(source.treeStructure)
204
212
205
- visitor?.visitPrimaryConstructor(declaration, constructorKeyboard ? : getIdentifier(klassSource))
213
+ visitor?.visitPrimaryConstructor(declaration, constructorKeyboard ? : getIdentifier(klassSource), context )
206
214
} else {
207
- visitor?.visitSecondaryConstructor(declaration, getIdentifier(source))
215
+ visitor?.visitSecondaryConstructor(declaration, getIdentifier(source), context )
208
216
}
209
217
}
210
218
}
@@ -219,7 +227,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
219
227
val source = declaration.source ? : return
220
228
val ktFile = context.containingFile?.sourceFile ? : return
221
229
val visitor = visitors[ktFile]
222
- visitor?.visitNamedFunction(declaration, getIdentifier(source))
230
+ visitor?.visitNamedFunction(declaration, getIdentifier(source), context )
223
231
}
224
232
}
225
233
@@ -234,7 +242,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
234
242
val source = declaration.source ? : return
235
243
val ktFile = context.containingFile?.sourceFile ? : return
236
244
val visitor = visitors[ktFile]
237
- visitor?.visitNamedFunction(declaration, source)
245
+ visitor?.visitNamedFunction(declaration, source, context )
238
246
}
239
247
}
240
248
@@ -248,12 +256,12 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
248
256
val source = declaration.source ? : return
249
257
val ktFile = context.containingFile?.sourceFile ? : return
250
258
val visitor = visitors[ktFile]
251
- visitor?.visitProperty(declaration, getIdentifier(source))
259
+ visitor?.visitProperty(declaration, getIdentifier(source), context )
252
260
253
261
val klass = declaration.returnTypeRef.toClassLikeSymbol(context.session)
254
262
val klassSource = declaration.returnTypeRef.source
255
263
if (klass != null && klassSource != null ) {
256
- visitor?.visitClassReference(klass, getIdentifier(klassSource))
264
+ visitor?.visitClassReference(klass, getIdentifier(klassSource), context )
257
265
}
258
266
}
259
267
}
@@ -268,7 +276,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
268
276
val source = declaration.source ? : return
269
277
val ktFile = context.containingFile?.sourceFile ? : return
270
278
val visitor = visitors[ktFile]
271
- visitor?.visitParameter(declaration, getIdentifier(source))
279
+ visitor?.visitParameter(declaration, getIdentifier(source), context )
272
280
}
273
281
}
274
282
@@ -282,7 +290,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
282
290
val source = declaration.source ? : return
283
291
val ktFile = context.containingFile?.sourceFile ? : return
284
292
val visitor = visitors[ktFile]
285
- visitor?.visitTypeParameter(declaration, getIdentifier(source))
293
+ visitor?.visitTypeParameter(declaration, getIdentifier(source), context )
286
294
}
287
295
}
288
296
@@ -296,7 +304,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
296
304
val source = declaration.source ? : return
297
305
val ktFile = context.containingFile?.sourceFile ? : return
298
306
val visitor = visitors[ktFile]
299
- visitor?.visitTypeAlias(declaration, getIdentifier(source))
307
+ visitor?.visitTypeAlias(declaration, getIdentifier(source), context )
300
308
}
301
309
}
302
310
@@ -328,7 +336,7 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
328
336
getIdentifier(source)
329
337
}
330
338
331
- visitor?.visitPropertyAccessor(declaration, identifierSource)
339
+ visitor?.visitPropertyAccessor(declaration, identifierSource, context )
332
340
}
333
341
}
334
342
@@ -348,23 +356,23 @@ open class AnalyzerCheckers(session: FirSession) : FirAdditionalCheckersExtensio
348
356
349
357
val ktFile = context.containingFile?.sourceFile ? : return
350
358
val visitor = visitors[ktFile]
351
- visitor?.visitSimpleNameExpression(calleeReference, getIdentifier(calleeReference.source ? : source))
359
+ visitor?.visitSimpleNameExpression(calleeReference, getIdentifier(calleeReference.source ? : source), context )
352
360
353
361
val resolvedSymbol = calleeReference.resolvedSymbol
354
362
if (resolvedSymbol.origin == FirDeclarationOrigin .SamConstructor && resolvedSymbol is FirSyntheticFunctionSymbol ) {
355
363
val referencedKlass = resolvedSymbol.resolvedReturnType.toClassLikeSymbol(context.session)
356
364
if (referencedKlass != null ) {
357
- visitor?.visitClassReference(referencedKlass, getIdentifier(calleeReference.source ? : source))
365
+ visitor?.visitClassReference(referencedKlass, getIdentifier(calleeReference.source ? : source), context )
358
366
}
359
367
}
360
368
361
369
// When encountering a reference to a property symbol, emit both getter and setter symbols
362
370
if (resolvedSymbol is FirPropertySymbol ) {
363
371
resolvedSymbol.getterSymbol?.let {
364
- visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source))
372
+ visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source), context )
365
373
}
366
374
resolvedSymbol.setterSymbol?.let {
367
- visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source))
375
+ visitor?.visitCallableReference(it, getIdentifier(calleeReference.source ? : source), context )
368
376
}
369
377
}
370
378
}
0 commit comments