Skip to content

Commit

Permalink
Do not warn about expected missing positions in Symbols.pos
Browse files Browse the repository at this point in the history
  • Loading branch information
jchyb committed Oct 1, 2024
1 parent 5ec1e8b commit c38f4f0
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 2 deletions.
4 changes: 3 additions & 1 deletion compiler/src/scala/quoted/runtime/impl/QuotesImpl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import scala.quoted.runtime.impl.printers.*
import scala.reflect.TypeTest
import dotty.tools.dotc.core.NameKinds.ExceptionBinderName
import dotty.tools.dotc.transform.TreeChecker
import dotty.tools.dotc.util.NoSource

object QuotesImpl {

Expand Down Expand Up @@ -2688,9 +2689,10 @@ class QuotesImpl private (using val ctx: Context) extends Quotes, QuoteUnpickler
if self.exists then
val symPos = self.sourcePos
if symPos.exists then Some(symPos)
else
else if self.source.exists then
if xCheckMacro then report.warning(s"Missing symbol position (defaulting to position 0): $self\nThis is a compiler bug. Please report it.")
Some(self.source.atSpan(dotc.util.Spans.Span(0)))
else None
else None

def docstring: Option[String] =
Expand Down
2 changes: 1 addition & 1 deletion tests/neg-macros/i19842-b.check
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
|
| at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
| at dotty.tools.dotc.transform.TreeChecker$.checkParents(TreeChecker.scala:210)
| at scala.quoted.runtime.impl.QuotesImpl$reflect$ClassDef$.module(QuotesImpl.scala:258)
| at scala.quoted.runtime.impl.QuotesImpl$reflect$ClassDef$.module(QuotesImpl.scala:257)
| at scala.quoted.runtime.impl.QuotesImpl$reflect$ClassDef$.module(QuotesImpl.scala:256)
| at Macros$.makeSerializer(Macro.scala:27)
|
|---------------------------------------------------------------------------------------------------------------------
Expand Down
10 changes: 10 additions & 0 deletions tests/pos-macros/i21672/Macro_1.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
object Repro {
inline def apply(): Unit = ${ applyImpl }

import scala.quoted.*
def applyImpl(using q: Quotes): Expr[Unit] = {
import q.reflect.*
report.info(TypeRepr.of[Some[String]].typeSymbol.pos.toString)
'{ () }
}
}
3 changes: 3 additions & 0 deletions tests/pos-macros/i21672/Test_2.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
//> using options -Xfatal-warnings
object Test:
Repro()

0 comments on commit c38f4f0

Please sign in to comment.