Skip to content

Class tag fails to be generated for a type argument of an implicit conversion #7608

Open
@scabug

Description

@scabug
object Test extends App {
  class C
  implicit def conv[T <: C : scala.reflect.ClassTag](name: String): T = ???
  def foo(c: C) = ???
  foo("test")
}
00:14 ~/Projects/210x/sandbox (2.10.x)$ st
[[syntax trees at end of                     typer]] // Test.scala
package <empty> {
  object Test extends AnyRef with App {
    def <init>(): Test.type = {
      Test.super.<init>();
      ()
    };
    class C extends scala.AnyRef {
      def <init>(): Test.C = {
        C.super.<init>();
        ()
      }
    };
    implicit def conv[T >: Nothing <: Test.C](name: String)(implicit evidence$1: scala.reflect.ClassTag[T]): T = scala.this.Predef.???;
    def foo(c: Test.C): Nothing = scala.this.Predef.???;
    Test.this.foo(Test.this.conv[T]("test")(`package`.this.materializeClassTag[T]()))
  }
}

Test.scala:5: error: macro has not been expanded
  foo("test")
      ^
one error found

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions