@@ -49,6 +49,7 @@ object Test {
49
49
def main (args : Array [String ]): Unit = {
50
50
runFooTests1()
51
51
runFooTests2()
52
+ runFooTests3()
52
53
runBarTests()
53
54
runBazTests()
54
55
runQuxTests()
@@ -102,6 +103,63 @@ object Test {
102
103
assertEquals(" selectDynamic(bazSelectUpdate).update(key, value)" , foo.bazSelectUpdate(" key" ) = " value" )
103
104
}
104
105
106
+ /** Test apply insertions kick in before dynamic calls. */
107
+ def runFooTests3 () = {
108
+ val foo = new Foo
109
+
110
+ assertEquals(" applyDynamic(apply)()" , foo())
111
+ assertEquals(" applyDynamic(apply)(1)" , foo(1 ))
112
+ assertEquals(" applyDynamic(apply)(1, 2, 3)" , foo(1 , 2 , 3 ))
113
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , foo(1 , 2 , " a" ))
114
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , foo(List (1 , 2 , " a" ): _* ))
115
+
116
+ assertEquals(" applyDynamicNamed(apply)((a,1))" , foo(a = 1 ))
117
+ assertEquals(" applyDynamicNamed(apply)((a,1), (b,2))" , foo(a = 1 , b = 2 ))
118
+ assertEquals(" applyDynamicNamed(apply)((a,1), (,0))" , foo(a = 1 , 0 ))
119
+ assertEquals(" applyDynamicNamed(apply)((a,1), (a,5))" , foo(a = 1 , a = 5 ))
120
+ assertEquals(" applyDynamicNamed(apply)((,d), (a,1), (,5), (a,c))" , foo(" d" , a = 1 , 5 , a = 'c' ))
121
+
122
+ assertEquals(" applyDynamic(apply)()" , foo.apply())
123
+ assertEquals(" applyDynamic(apply)(1)" , foo.apply(1 ))
124
+ assertEquals(" applyDynamic(apply)(1, 2, 3)" , foo.apply(1 , 2 , 3 ))
125
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , foo.apply(1 , 2 , " a" ))
126
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , foo.apply(List (1 , 2 , " a" ): _* ))
127
+
128
+ assertEquals(" applyDynamicNamed(apply)((a,1))" , foo.apply(a = 1 ))
129
+ assertEquals(" applyDynamicNamed(apply)((a,1), (b,2))" , foo.apply(a = 1 , b = 2 ))
130
+ assertEquals(" applyDynamicNamed(apply)((a,1), (,0))" , foo.apply(a = 1 , 0 ))
131
+ assertEquals(" applyDynamicNamed(apply)((a,1), (a,5))" , foo.apply(a = 1 , a = 5 ))
132
+ assertEquals(" applyDynamicNamed(apply)((,d), (a,1), (,5), (a,c))" , foo.apply(" d" , a = 1 , 5 , a = 'c' ))
133
+
134
+ object bar {
135
+ val foo : Foo = new Foo
136
+ }
137
+
138
+ assertEquals(" applyDynamic(apply)()" , bar.foo())
139
+ assertEquals(" applyDynamic(apply)(1)" , bar.foo(1 ))
140
+ assertEquals(" applyDynamic(apply)(1, 2, 3)" , bar.foo(1 , 2 , 3 ))
141
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , bar.foo(1 , 2 , " a" ))
142
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , bar.foo(List (1 , 2 , " a" ): _* ))
143
+
144
+ assertEquals(" applyDynamicNamed(apply)((a,1))" , bar.foo(a = 1 ))
145
+ assertEquals(" applyDynamicNamed(apply)((a,1), (b,2))" , bar.foo(a = 1 , b = 2 ))
146
+ assertEquals(" applyDynamicNamed(apply)((a,1), (,0))" , bar.foo(a = 1 , 0 ))
147
+ assertEquals(" applyDynamicNamed(apply)((a,1), (a,5))" , bar.foo(a = 1 , a = 5 ))
148
+ assertEquals(" applyDynamicNamed(apply)((,d), (a,1), (,5), (a,c))" , bar.foo(" d" , a = 1 , 5 , a = 'c' ))
149
+
150
+ assertEquals(" applyDynamic(apply)()" , bar.foo.apply())
151
+ assertEquals(" applyDynamic(apply)(1)" , bar.foo.apply(1 ))
152
+ assertEquals(" applyDynamic(apply)(1, 2, 3)" , bar.foo.apply(1 , 2 , 3 ))
153
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , bar.foo.apply(1 , 2 , " a" ))
154
+ assertEquals(" applyDynamic(apply)(1, 2, a)" , bar.foo.apply(List (1 , 2 , " a" ): _* ))
155
+
156
+ assertEquals(" applyDynamicNamed(apply)((a,1))" , bar.foo.apply(a = 1 ))
157
+ assertEquals(" applyDynamicNamed(apply)((a,1), (b,2))" , bar.foo.apply(a = 1 , b = 2 ))
158
+ assertEquals(" applyDynamicNamed(apply)((a,1), (,0))" , bar.foo.apply(a = 1 , 0 ))
159
+ assertEquals(" applyDynamicNamed(apply)((a,1), (a,5))" , bar.foo.apply(a = 1 , a = 5 ))
160
+ assertEquals(" applyDynamicNamed(apply)((,d), (a,1), (,5), (a,c))" , bar.foo.apply(" d" , a = 1 , 5 , a = 'c' ))
161
+ }
162
+
105
163
/** Test cains of dynamic calls. */
106
164
def runBarTests () = {
107
165
val bar = new Bar (" bar" )
0 commit comments