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