Skip to content

Crash when typing applied polyfunction after match #13950

Closed
@KacperFKorban

Description

@KacperFKorban

Compiler version

master- commit 16f9b22
the crash doesn't happen on the latest nightly 3.1.2-RC1-bin-20211102-82172ed-NIGHTLY

Minimized code

def example =
  (1,2).map[[_] =>> Int]([C] => (x1: C) => x1 match {
    case x2: ([V] => () => Int) =>
      x2[Int]()
  })

Output (click arrow to expand)

-- Unchecked Warning: tests/pos/i13934.scala:3:9 -------------------------------
3 |    case x2: ([V] => () => Int) =>
  |         ^
  |         the type test for [V] => () => Int cannot be checked at runtime
exception while typing x2.apply of class class dotty.tools.dotc.ast.Trees$Select # -1
exception while typing x2.apply[Int] of class class dotty.tools.dotc.ast.Trees$TypeApply # -1
exception while typing x2.apply[Int]() of class class dotty.tools.dotc.ast.Trees$Apply # -1
exception while typing {
  x2.apply[Int]()
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing return[matchResult1] 
  {
    x2.apply[Int]()
  } of class class dotty.tools.dotc.ast.Trees$Return # -1
exception while typing {
  case val x2: C & ([V] => () => Int) = 
    x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[C & ([V] => () => Int)]
  return[matchResult1] 
    {
      x2.apply[Int]()
    }
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing if x1.$isInstanceOf[[V] => () => Int] then 
  {
    case val x2: C & ([V] => () => Int) = 
      x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[C & ([V] => () => Int)]
    return[matchResult1] 
      {
        x2.apply[Int]()
      }
  }
 else () of class class dotty.tools.dotc.ast.Trees$If # -1
exception while typing {
  case val x1: (x1 : Object) = x1
  if x1.$isInstanceOf[[V] => () => Int] then 
    {
      case val x2: C & ([V] => () => Int) = 
        x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[C & ([V] => () => Int)]
      return[matchResult1] 
        {
          x2.apply[Int]()
        }
    }
   else ()
  throw new MatchError(x1)
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing matchResult1[Int]: 
  {
    case val x1: (x1 : Object) = x1
    if x1.$isInstanceOf[[V] => () => Int] then 
      {
        case val x2: C & ([V] => () => Int) = 
          x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
            C & ([V] => () => Int)
          ]
        return[matchResult1] 
          {
            x2.apply[Int]()
          }
      }
     else ()
    throw new MatchError(x1)
  } of class class dotty.tools.dotc.ast.Trees$Labeled # -1
exception while typing def apply[C](x1: C): Int = 
  matchResult1[Int]: 
    {
      case val x1: (x1 : Object) = x1
      if x1.$isInstanceOf[[V] => () => Int] then 
        {
          case val x2: C & ([V] => () => Int) = 
            x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
              C & ([V] => () => Int)
            ]
          return[matchResult1] 
            {
              x2.apply[Int]()
            }
        }
       else ()
      throw new MatchError(x1)
    } of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing final class $anon() extends Object(), PolyFunction {
  def apply[C](x1: C): Int = 
    matchResult1[Int]: 
      {
        case val x1: (x1 : Object) = x1
        if x1.$isInstanceOf[[V] => () => Int] then 
          {
            case val x2: C & ([V] => () => Int) = 
              x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                C & ([V] => () => Int)
              ]
            return[matchResult1] 
              {
                x2.apply[Int]()
              }
          }
         else ()
        throw new MatchError(x1)
      }
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing {
  final class $anon() extends Object(), PolyFunction {
    def apply[C](x1: C): Int = 
      matchResult1[Int]: 
        {
          case val x1: (x1 : Object) = x1
          if x1.$isInstanceOf[[V] => () => Int] then 
            {
              case val x2: C & ([V] => () => Int) = 
                x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                  C & ([V] => () => Int)
                ]
              return[matchResult1] 
                {
                  x2.apply[Int]()
                }
            }
           else ()
          throw new MatchError(x1)
        }
  }
  new Object with PolyFunction {...}():([C] => (C) => Int)
} of class class dotty.tools.dotc.ast.Trees$Block # -1
exception while typing val f$proxy1: [C] => (C) => Int = 
  {
    final class $anon() extends Object(), PolyFunction {
      def apply[C](x1: C): Int = 
        matchResult1[Int]: 
          {
            case val x1: (x1 : Object) = x1
            if x1.$isInstanceOf[[V] => () => Int] then 
              {
                case val x2: C & ([V] => () => Int) = 
                  x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                    C & ([V] => () => Int)
                  ]
                return[matchResult1] 
                  {
                    x2.apply[Int]()
                  }
              }
             else ()
            throw new MatchError(x1)
          }
    }
    new Object with PolyFunction {...}():([C] => (C) => Int)
  } of class class dotty.tools.dotc.ast.Trees$ValDef # -1
exception while typing {
  val Tuple_this: (Int, Int) = Tuple2.apply[Int, Int](1, 2)
  val f$proxy1: [C] => (C) => Int = 
    {
      final class $anon() extends Object(), PolyFunction {
        def apply[C](x1: C): Int = 
          matchResult1[Int]: 
            {
              case val x1: (x1 : Object) = x1
              if x1.$isInstanceOf[[V] => () => Int] then 
                {
                  case val x2: C & ([V] => () => Int) = 
                    x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                      C & ([V] => () => Int)
                    ]
                  return[matchResult1] 
                    {
                      x2.apply[Int]()
                    }
                }
               else ()
              throw new MatchError(x1)
            }
      }
      new Object with PolyFunction {...}():([C] => (C) => Int)
    }
  runtime.Tuples.map[[_] =>> Int](Tuple_this, f$proxy1).asInstanceOf[
    Int *: Int *: EmptyTuple
  ]:Int *: Int *: EmptyTuple
} of class class dotty.tools.dotc.ast.Trees$Inlined # -1
exception while typing def example: Int *: Int *: EmptyTuple = 
  {
    val Tuple_this: (Int, Int) = Tuple2.apply[Int, Int](1, 2)
    val f$proxy1: [C] => (C) => Int = 
      {
        final class $anon() extends Object(), PolyFunction {
          def apply[C](x1: C): Int = 
            matchResult1[Int]: 
              {
                case val x1: (x1 : Object) = x1
                if x1.$isInstanceOf[[V] => () => Int] then 
                  {
                    case val x2: C & ([V] => () => Int) = 
                      x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                        C & ([V] => () => Int)
                      ]
                    return[matchResult1] 
                      {
                        x2.apply[Int]()
                      }
                  }
                 else ()
                throw new MatchError(x1)
              }
        }
        new Object with PolyFunction {...}():([C] => (C) => Int)
      }
    runtime.Tuples.map[[_] =>> Int](Tuple_this, f$proxy1).asInstanceOf[
      Int *: Int *: EmptyTuple
    ]:Int *: Int *: EmptyTuple
  } of class class dotty.tools.dotc.ast.Trees$DefDef # -1
exception while typing @SourceFile("tests/pos/i13934.scala") final module class i13934$package()
   extends
 Object() {
  private def writeReplace(): AnyRef = 
    new scala.runtime.ModuleSerializationProxy(classOf[i13934$package.type])
  def example: Int *: Int *: EmptyTuple = 
    {
      val Tuple_this: (Int, Int) = Tuple2.apply[Int, Int](1, 2)
      val f$proxy1: [C] => (C) => Int = 
        {
          final class $anon() extends Object(), PolyFunction {
            def apply[C](x1: C): Int = 
              matchResult1[Int]: 
                {
                  case val x1: (x1 : Object) = x1
                  if x1.$isInstanceOf[[V] => () => Int] then 
                    {
                      case val x2: C & ([V] => () => Int) = 
                        x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                          C & ([V] => () => Int)
                        ]
                      return[matchResult1] 
                        {
                          x2.apply[Int]()
                        }
                    }
                   else ()
                  throw new MatchError(x1)
                }
          }
          new Object with PolyFunction {...}():([C] => (C) => Int)
        }
      runtime.Tuples.map[[_] =>> Int](Tuple_this, f$proxy1).asInstanceOf[
        Int *: Int *: EmptyTuple
      ]:Int *: Int *: EmptyTuple
    }
} of class class dotty.tools.dotc.ast.Trees$TypeDef # -1
exception while typing package <empty> {
  final lazy module val i13934$package: i13934$package = new i13934$package()
  @SourceFile("tests/pos/i13934.scala") final module class i13934$package()
     extends
   Object() {
    private def writeReplace(): AnyRef = 
      new scala.runtime.ModuleSerializationProxy(classOf[i13934$package.type])
    def example: Int *: Int *: EmptyTuple = 
      {
        val Tuple_this: (Int, Int) = Tuple2.apply[Int, Int](1, 2)
        val f$proxy1: [C] => (C) => Int = 
          {
            final class $anon() extends Object(), PolyFunction {
              def apply[C](x1: C): Int = 
                matchResult1[Int]: 
                  {
                    case val x1: (x1 : Object) = x1
                    if x1.$isInstanceOf[[V] => () => Int] then 
                      {
                        case val x2: C & ([V] => () => Int) = 
                          x1.$asInstanceOf[[V] => () => Int].$asInstanceOf[
                            C & ([V] => () => Int)
                          ]
                        return[matchResult1] 
                          {
                            x2.apply[Int]()
                          }
                      }
                     else ()
                    throw new MatchError(x1)
                  }
            }
            new Object with PolyFunction {...}():([C] => (C) => Int)
          }
        runtime.Tuples.map[[_] =>> Int](Tuple_this, f$proxy1).asInstanceOf[
          Int *: Int *: EmptyTuple
        ]:Int *: Int *: EmptyTuple
      }
  }
} of class class dotty.tools.dotc.ast.Trees$PackageDef # -1
exception occurred while compiling tests/pos/i13934.scala
java.lang.AssertionError: assertion failed:  <none> while compiling tests/pos/i13934.scala
Exception in thread "main" java.lang.AssertionError: assertion failed:  <none>
	at scala.runtime.Scala3RunTime$.assertFailed(Scala3RunTime.scala:8)
	at dotty.tools.dotc.transform.Erasure$Typer.typedSelect(Erasure.scala:734)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2739)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.transform.Erasure$Typer.typedTypeApply(Erasure.scala:828)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2788)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.transform.Erasure$Typer.typedApply(Erasure.scala:850)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2769)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1054)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2777)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.typer.Typer.typedReturn(Typer.scala:1725)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2784)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1054)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2777)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.$anonfun$13(Typer.scala:1119)
	at dotty.tools.dotc.typer.Applications.harmonic(Applications.scala:2186)
	at dotty.tools.dotc.typer.Applications.harmonic$(Applications.scala:317)
	at dotty.tools.dotc.typer.Typer.harmonic(Typer.scala:107)
	at dotty.tools.dotc.typer.Typer.typedIf(Typer.scala:1122)
	at dotty.tools.dotc.transform.Erasure$Typer.typedIf(Erasure.scala:897)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2778)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2950)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2973)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1066)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1048)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1052)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2777)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedLabeled(Typer.scala:1679)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2762)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.typer.Typer.$anonfun$46(Typer.scala:2216)
	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:238)
	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2216)
	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:968)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2746)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2923)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2973)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1066)
	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2414)
	at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1056)
	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:2757)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2761)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2923)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2973)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1066)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1048)
	at dotty.tools.dotc.typer.Typer.typedBlock(Typer.scala:1052)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2777)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.typer.Typer.typedValDef(Typer.scala:2152)
	at dotty.tools.dotc.transform.Erasure$Typer.typedValDef(Erasure.scala:921)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2743)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2923)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2973)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1066)
	at dotty.tools.dotc.typer.Typer.typedBlockStats(Typer.scala:1048)
	at dotty.tools.dotc.typer.Typer.typedInlined(Typer.scala:1815)
	at dotty.tools.dotc.transform.Erasure$Typer.typedInlined(Erasure.scala:912)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2791)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.typer.Typer.$anonfun$46(Typer.scala:2216)
	at dotty.tools.dotc.typer.PrepareInlineable$.dropInlineIfError(PrepareInlineable.scala:238)
	at dotty.tools.dotc.typer.Typer.typedDefDef(Typer.scala:2216)
	at dotty.tools.dotc.transform.Erasure$Typer.typedDefDef(Erasure.scala:968)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2746)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2923)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2973)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1066)
	at dotty.tools.dotc.typer.Typer.typedClassDef(Typer.scala:2414)
	at dotty.tools.dotc.transform.Erasure$Typer.typedClassDef(Erasure.scala:1056)
	at dotty.tools.dotc.typer.Typer.typedTypeOrClassDef$1(Typer.scala:2757)
	at dotty.tools.dotc.typer.Typer.typedNamed$1(Typer.scala:2761)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2831)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.traverse$1(Typer.scala:2923)
	at dotty.tools.dotc.typer.Typer.typedStats(Typer.scala:2973)
	at dotty.tools.dotc.transform.Erasure$Typer.typedStats(Erasure.scala:1066)
	at dotty.tools.dotc.typer.Typer.typedPackageDef(Typer.scala:2541)
	at dotty.tools.dotc.typer.Typer.typedUnnamed$1(Typer.scala:2802)
	at dotty.tools.dotc.typer.Typer.typedUnadapted(Typer.scala:2832)
	at dotty.tools.dotc.typer.ReTyper.typedUnadapted(ReTyper.scala:121)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2897)
	at dotty.tools.dotc.typer.Typer.typed(Typer.scala:2901)
	at dotty.tools.dotc.typer.Typer.typedExpr(Typer.scala:3017)
	at dotty.tools.dotc.transform.Erasure.run(Erasure.scala:132)
	at dotty.tools.dotc.core.Phases$Phase.runOn$$anonfun$1(Phases.scala:308)
	at scala.collection.immutable.List.map(List.scala:246)
	at dotty.tools.dotc.core.Phases$Phase.runOn(Phases.scala:309)
	at dotty.tools.dotc.Run.runPhases$1$$anonfun$1(Run.scala:261)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:15)
	at scala.runtime.function.JProcedure1.apply(JProcedure1.java:10)
	at scala.collection.ArrayOps$.foreach$extension(ArrayOps.scala:1323)
	at dotty.tools.dotc.Run.runPhases$1(Run.scala:272)
	at dotty.tools.dotc.Run.compileUnits$$anonfun$1(Run.scala:280)
	at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.scala:18)
	at dotty.tools.dotc.util.Stats$.maybeMonitored(Stats.scala:68)
	at dotty.tools.dotc.Run.compileUnits(Run.scala:289)
	at dotty.tools.dotc.Run.compileSources(Run.scala:222)
	at dotty.tools.dotc.Run.compile(Run.scala:206)
	at dotty.tools.dotc.Driver.doCompile(Driver.scala:39)
	at dotty.tools.dotc.Driver.process(Driver.scala:199)
	at dotty.tools.dotc.Driver.process(Driver.scala:167)
	at dotty.tools.dotc.Driver.process(Driver.scala:179)
	at dotty.tools.dotc.Driver.main(Driver.scala:209)
	at dotty.tools.dotc.Main.main(Main.scala)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions