Skip to content

-Ycheck failure #25131

@som-snytt

Description

@som-snytt

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: TransparentMacroConversion

Output (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

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions