You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
3.0.0-RC1 (also happens on dotty master, which as of this writing is 3.0.0-RC2-bin-SNAPSHOT-nonbootstrapped-git-086d1a8)
Minimized code
macros.scala:
// assume that this conversion utility is defined in Scala 2classScala2Conversion[T, V](valf:T=>V)
objectScala2Conversion{
implicitdefcreate[T, V](implicitf: T=>V):Scala2Conversion[T, V] =newScala2Conversion(f)
}
// assume this utility in Scala 3, to summon a conversion within a macroimportquoted._defsummonConversionImpl(usingqctx: Quotes):Expr[Any] = {
importqctx.reflect._// hardcoded in this example to look for String to IntvalconversionTpe=TypeRepr.of[Scala2Conversion[String, Int]]
Implicits.search(conversionTpe) match {
caseiss: ImplicitSearchSuccess=>
iss.tree.asExpr
caseisf: ImplicitSearchFailure=>
report.error(s"can't find conversion")
'{???}
}
}
inlinedefsummonConversion() =${summonConversionImpl}
[error] 5| summonConversion()
[error] |^^^^^^^^^^^^^^^^^^
[error] |Exception occurred while executing macro expansion.
[error] |java.lang.AssertionError: assertion failed
[error] | at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:11)
[error] | at dotty.tools.dotc.typer.EtaExpansion$.etaExpand(EtaExpansion.scala:226)
[error] | at dotty.tools.dotc.typer.Typer.adaptNoArgsUnappliedMethod$2(Typer.scala:3379)
[error] | at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3524)
[error] | at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3747)
[error] | at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3054)
[error] | at dotty.tools.dotc.typer.Implicits.typedImplicit(Implicits.scala:1013)
[error] | at dotty.tools.dotc.typer.Implicits.typedImplicit$(Implicits.scala:760)
[error] | at dotty.tools.dotc.typer.Typer.typedImplicit(Typer.scala:102)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.tryImplicit(Implicits.scala:1108)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.rank$1(Implicits.scala:1180)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1289)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1296)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1329)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicit(Implicits.scala:965)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicit$(Implicits.scala:760)
[error] | at dotty.tools.dotc.typer.Typer.inferImplicit(Typer.scala:102)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicitArg(Implicits.scala:834)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicitArg$(Implicits.scala:760)
[error] | at dotty.tools.dotc.typer.Typer.inferImplicitArg(Typer.scala:102)
[error] | at dotty.tools.dotc.typer.Typer.implicitArgs$1(Typer.scala:3214)
[error] | at dotty.tools.dotc.typer.Typer.addImplicitArgs$3(Typer.scala:3250)
[error] | at dotty.tools.dotc.typer.Typer.adaptNoArgsImplicitMethod$2(Typer.scala:3326)
[error] | at dotty.tools.dotc.typer.Typer.adaptNoArgs$1(Typer.scala:3504)
[error] | at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3747)
[error] | at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3054)
[error] | at dotty.tools.dotc.typer.Typer.readapt$1(Typer.scala:3065)
[error] | at dotty.tools.dotc.typer.Typer.adapt1(Typer.scala:3734)
[error] | at dotty.tools.dotc.typer.Typer.adapt(Typer.scala:3054)
[error] | at dotty.tools.dotc.typer.Implicits.typedImplicit(Implicits.scala:1013)
[error] | at dotty.tools.dotc.typer.Implicits.typedImplicit$(Implicits.scala:760)
[error] | at dotty.tools.dotc.typer.Typer.typedImplicit(Typer.scala:102)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.tryImplicit(Implicits.scala:1108)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.rank$1(Implicits.scala:1180)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1289)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1296)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.searchImplicit(Implicits.scala:1304)
[error] | at dotty.tools.dotc.typer.Implicits$ImplicitSearch.bestImplicit(Implicits.scala:1329)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicit(Implicits.scala:965)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicit$(Implicits.scala:760)
[error] | at dotty.tools.dotc.typer.Typer.inferImplicit(Typer.scala:102)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicitArg(Implicits.scala:834)
[error] | at dotty.tools.dotc.typer.Implicits.inferImplicitArg$(Implicits.scala:760)
[error] | at dotty.tools.dotc.typer.Typer.inferImplicitArg(Typer.scala:102)
[error] | at scala.quoted.runtime.impl.QuotesImpl$reflect$Implicits$.search(QuotesImpl.scala:2332)
[error] | at scala.quoted.runtime.impl.QuotesImpl$reflect$Implicits$.search(QuotesImpl.scala:2331)
[error] | at macros$package$.summonConversionImpl(macros.scala:16)
[error] |
[error] |This location contains code that was inlined from main.scala:5
The text was updated successfully, but these errors were encountered:
Uh oh!
There was an error while loading. Please reload this page.
Compiler version
3.0.0-RC1 (also happens on dotty master, which as of this writing is 3.0.0-RC2-bin-SNAPSHOT-nonbootstrapped-git-086d1a8)
Minimized code
macros.scala:
main.scala:
Output (click arrow to expand)
The text was updated successfully, but these errors were encountered: