File tree Expand file tree Collapse file tree 3 files changed +6
-4
lines changed
compiler/src/dotty/tools/dotc Expand file tree Collapse file tree 3 files changed +6
-4
lines changed Original file line number Diff line number Diff line change @@ -819,13 +819,15 @@ object Trees {
819819
820820 class EmptyTree [T >: Untyped ] extends Thicket (Nil )(NoSource ) {
821821 // assert(uniqueId != 1492)
822+ override def withSpan (span : Span ) = throw new AssertionError (" Cannot change span of EmptyTree" )
822823 }
823824
824825 class EmptyValDef [T >: Untyped ] extends ValDef [T ](
825826 nme.WILDCARD , genericEmptyTree[T ], genericEmptyTree[T ])(NoSource ) with WithoutTypeOrPos [T ] {
826827 myTpe = NoType .asInstanceOf [T ]
827- override def isEmpty : Boolean = true
828828 setMods(untpd.Modifiers (PrivateLocal ))
829+ override def isEmpty : Boolean = true
830+ override def withSpan (span : Span ) = throw new AssertionError (" Cannot change span of EmptyValDef" )
829831 }
830832
831833 @ sharable val theEmptyTree : EmptyTree [Type ] = new EmptyTree [Type ]
Original file line number Diff line number Diff line change @@ -2419,7 +2419,7 @@ object Parsers {
24192419 makeTypeDef(typeBounds())
24202420 case _ =>
24212421 syntaxErrorOrIncomplete(ExpectedTypeBoundOrEquals (in.token))
2422- EmptyTree
2422+ return EmptyTree // return to avoid setting the span to EmptyTree
24232423 }
24242424 }
24252425 }
Original file line number Diff line number Diff line change @@ -448,8 +448,8 @@ class Staging extends MacroTransformWithImplicits {
448448 else if (enclosingInlineds.nonEmpty) { // level 0 in an inlined call
449449 val spliceCtx = ctx.outer // drop the last `inlineContext`
450450 val pos : SourcePosition = spliceCtx.source.atSpan(enclosingInlineds.head.span)
451- val evaluatedSplice = Splicer .splice(splice.qualifier, pos, macroClassLoader)(spliceCtx).withSpan(splice.span)
452- if (ctx.reporter.hasErrors) splice else transform(evaluatedSplice)
451+ val evaluatedSplice = Splicer .splice(splice.qualifier, pos, macroClassLoader)(spliceCtx)
452+ if (ctx.reporter.hasErrors) splice else transform(evaluatedSplice.withSpan(splice.span) )
453453 }
454454 else if (! ctx.owner.isInlineMethod) { // level 0 outside an inline method
455455 ctx.error(i " splice outside quotes or inline method " , splice.sourcePos)
You can’t perform that action at this time.
0 commit comments