aboutsummaryrefslogtreecommitdiff
path: root/tests/neg/applydynamic_sip.scala
blob: 86cff5fc4d577bc57fef6ba4f5e43a3dea298181 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import scala.language.dynamics
object Test extends App {
  val qual: Dynamic = ???
  val expr = "expr"
  val a = "a"
  val a2 = "a2"

  qual.sel(a, a2: _*) // error
  qual.sel(arg = a, a2: _*) // error
  qual.sel(arg, arg2 = "a2", a2: _*) // error

  class Bad1 extends Dynamic {
    def selectDynamic(n: Int) = n
    def applyDynamic(n: Int) = n
    def applyDynamicNamed(n: Int) = n
    def updateDynamic(n: Int) = n

  }
  val bad1 = new Bad1
  bad1.sel // error
  bad1.sel(1) // error
  bad1.sel(a = 1) // error
  bad1.sel = 1 // error

  class Bad2 extends Dynamic {
    def selectDynamic = 1
    def applyDynamic = 1
    def applyDynamicNamed = 1
    def updateDynamic = 1
  }
  val bad2 = new Bad2
  bad2.sel // error
  bad2.sel(1) // error
  bad2.sel(a = 1) // error
  bad2.sel = 1 // error
}