-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
area:implicits:implicitConversionIssues tied with scala.language.implicitConversionsIssues tied with scala.language.implicitConversionsarea:inlinearea:positionsarea:private optionsIssues tied to -Y private/internal compiler settings.Issues tied to -Y private/internal compiler settings.itype:bugitype:crash
Description
Compiler version
3.8.1-RC1
Minimized code
From #12429
lib.scala
import scala.language.implicitConversions
inline def inlineError : Unit =
compiletime.error("inlineError")
transparent inline def transparentInlineError : Unit =
compiletime.error("transparentInlineError")
trait InlineConversion
object InlineConversion:
inline implicit def fromInt(i : Int) : InlineConversion =
compiletime.error("inlineConversionError")
trait TransparentInlineConversion
object TransparentInlineConversion:
transparent inline implicit def fromInt(i : Int) : TransparentInlineConversion =
compiletime.error("transparentInlineConversionError")
import scala.quoted.*
inline def macroError : Unit = ${macroErrorInternal}
def macroErrorInternal(using Quotes) : Expr[Unit] =
import quotes.reflect.*
report.error("macroError")
'{}
transparent inline def transparentMacroError : Unit = ${transparentMacroErrorInternal}
def transparentMacroErrorInternal(using Quotes) : Expr[Unit] =
import quotes.reflect.*
report.error("transparentMacroError")
'{}
trait MacroConversion
object MacroConversion:
inline implicit def fromInt(i : Int) : MacroConversion = ${fromIntInternal}
def fromIntInternal(using Quotes) : Expr[MacroConversion] =
import quotes.reflect.*
report.error("macroConversionError")
'{???}
trait TransparentMacroConversion
object TransparentMacroConversion:
transparent inline implicit def fromInt(i : Int) : TransparentMacroConversion = ${fromIntInternal}
def fromIntInternal(using Quotes) : Expr[TransparentMacroConversion] =
import quotes.reflect.*
report.error("transparentMacroConversionError")
'{???}app.scala
object Test:
inlineError // error: inlineError
transparentInlineError // error: transparentInlineError
val i1 : InlineConversion = 1 // error: inlineConversionError
val i2 : TransparentInlineConversion = 2 // error: transparentInlineConversionError
macroError // error: macroError
//transparentMacroError // error: transparentMacroError
val i3 : MacroConversion = 3 // error: macroConversionError
//val i4 : TransparentMacroConversion = 4 // error Found: (4 : Int) Required: TransparentMacroConversionOutput (click arrow to expand)
Failure on app.scala after posttyper.
scala-cli compile --server=false -S 3.8.1-RC1 -Ycheck:all tests/neg/i12429b/*.scala
Details
at dotty.tools.dotc.transform.YCheckPositions$$anon$1.traverse(YCheckPositions.scala:36)Metadata
Metadata
Assignees
Labels
area:implicits:implicitConversionIssues tied with scala.language.implicitConversionsIssues tied with scala.language.implicitConversionsarea:inlinearea:positionsarea:private optionsIssues tied to -Y private/internal compiler settings.Issues tied to -Y private/internal compiler settings.itype:bugitype:crash