summaryrefslogblamecommitdiff
path: root/test/files/neg/compile-time-only-a.scala
blob: 43d36dfab1499bc499fd8a7240ab04358fc64d8a (plain) (tree)
























































                                                       
import scala.annotation.compileTimeOnly

@compileTimeOnly("C1") class C1
object C1

class C2
@compileTimeOnly("C2") object C2

@compileTimeOnly("C3") case class C3(x: Int)

@compileTimeOnly("C4") case class C4(x: Int)
object C4

object pkg {
  @compileTimeOnly("C5")
  implicit class C5(val x: Int) {
    def ext = ???
  }
}

class C6(@compileTimeOnly("C6.x") val x: Int) {
  @compileTimeOnly("C6.foo") def foo = 2
  @compileTimeOnly("C6.Foo") type Foo = Int
  @compileTimeOnly("C6.y") var y = 3
}

object Test extends App {
  new C1()
  C1

  new C2()
  C2

  new C3(2)
  C3(2)

  new C4(2)
  C4(2)

  import pkg._
  2.ext
  C5(2)

  val c6 = new C6(2)
  val _ = c6.x
  c6.foo
  type Foo = c6.Foo
  c6.y = c6.y
}

@compileTimeOnly("placebo")
class placebo extends scala.annotation.StaticAnnotation

@placebo
class Test {
  @placebo def x = (2: @placebo)
}