@@ -279,13 +279,15 @@ class PostTyper extends MacroTransform with InfoTransformer { thisPhase =>
279
279
}
280
280
}
281
281
282
- def checkUsableAsValue (tree : Tree )(using Context ): Unit =
282
+ def checkUsableAsValue (tree : Tree )(using Context ): Tree =
283
283
def unusable (msg : Symbol => Message ) =
284
- report.error( msg(tree.symbol), tree.srcPos )
284
+ errorTree(tree, msg(tree.symbol))
285
285
if tree.symbol.is(ConstructorProxy ) then
286
286
unusable(ConstructorProxyNotValue (_))
287
- if tree.symbol.isContextBoundCompanion then
287
+ else if tree.symbol.isContextBoundCompanion then
288
288
unusable(ContextBoundCompanionNotValue (_))
289
+ else
290
+ tree
289
291
290
292
def checkStableSelection (tree : Tree )(using Context ): Unit =
291
293
def check (qual : Tree ) =
@@ -330,20 +332,21 @@ class PostTyper extends MacroTransform with InfoTransformer { thisPhase =>
330
332
if tree.isType then
331
333
checkNotPackage(tree)
332
334
else
333
- checkUsableAsValue(tree)
334
335
registerNeedsInlining(tree)
335
- tree.tpe match {
336
+ val tree1 = checkUsableAsValue(tree)
337
+ tree1.tpe match {
336
338
case tpe : ThisType => This (tpe.cls).withSpan(tree.span)
337
- case _ => tree
339
+ case _ => tree1
338
340
}
339
341
case tree @ Select (qual, name) =>
340
342
registerNeedsInlining(tree)
341
343
if name.isTypeName then
342
344
Checking .checkRealizable(qual.tpe, qual.srcPos)
343
345
withMode(Mode .Type )(super .transform(checkNotPackage(tree)))
344
346
else
345
- checkUsableAsValue(tree)
346
- transformSelect(tree, Nil )
347
+ checkUsableAsValue(tree) match
348
+ case tree1 : Select => transformSelect(tree1, Nil )
349
+ case tree1 => tree1
347
350
case tree : Apply =>
348
351
val methType = tree.fun.tpe.widen.asInstanceOf [MethodType ]
349
352
val app =
0 commit comments