@@ -196,9 +196,12 @@ class CycleChecker(cache: Cache) {
196
196
private def methodDependencies (call : StaticCall )(using Context ): List [Dependency ] = trace(" dependencies of " + call.symbol.show, init, _.asInstanceOf [List [Dependency ]].map(_.show).toString) {
197
197
if (summaryCache.contains(call.symbol)) summaryCache(call.symbol)
198
198
else trace(" summary for " + call.symbol.show) {
199
- val deps = analyzeMethod(call)
200
- summaryCache(call.symbol) = deps
201
- deps
199
+ if call.symbol.isOneOf(Flags .Method | Flags .Lazy ) then
200
+ val deps = analyzeMethod(call)
201
+ summaryCache(call.symbol) = deps
202
+ deps
203
+ else
204
+ Nil
202
205
}
203
206
}
204
207
@@ -260,6 +263,12 @@ class CycleChecker(cache: Cache) {
260
263
deps += InstanceUsage (cls, cls)(Vector (tree))
261
264
deps += StaticCall (cls, tree.symbol)(Vector (tree))
262
265
266
+ case tree @ Select (qual, name) if name.isTermName && isStaticObjectRef(qual.symbol) =>
267
+ val cls = qual.symbol.moduleClass.asClass
268
+ deps += ObjectAccess (qual.symbol)(Vector (tree))
269
+ deps += StaticCall (cls, tree.symbol)(Vector (tree))
270
+ deps += ProxyUsage (cls, tree.symbol)(Vector (tree))
271
+
263
272
case tree : RefTree if tree.isTerm =>
264
273
deps ++= analyzeType(tree.tpe, tree, exclude = cls)
265
274
@@ -295,6 +304,13 @@ class CycleChecker(cache: Cache) {
295
304
val cls = obj.moduleClass.asClass
296
305
ObjectAccess (obj)(Vector (source)) :: InstanceUsage (cls, cls)(Vector (source)) :: Nil
297
306
307
+ case tmref @ TermRef (prefix : TermRef , _) if isStaticObjectRef(prefix.symbol) =>
308
+ val obj = prefix.symbol
309
+ val cls = obj.moduleClass.asClass
310
+ ObjectAccess (obj)(Vector (source)) ::
311
+ StaticCall (cls, tmref.symbol)(Vector (source)) ::
312
+ ProxyUsage (cls, tmref.symbol)(Vector (source)) :: Nil
313
+
298
314
case tmref : TermRef =>
299
315
analyzeType(tmref.prefix, source, exclude)
300
316
0 commit comments