File tree 5 files changed +200
-1
lines changed
compiler/src/dotty/tools/dotc/typer
5 files changed +200
-1
lines changed Original file line number Diff line number Diff line change @@ -1002,7 +1002,10 @@ trait Applications extends Compatibility {
1002
1002
case TypeApply (fun, _) => ! fun.isInstanceOf [Select ]
1003
1003
case _ => false
1004
1004
}
1005
- typedDynamicApply(tree, isInsertedApply, pt)
1005
+ val tree1 = fun1 match
1006
+ case Select (_, nme.apply) => tree
1007
+ case _ => untpd.Apply (fun1, tree.args)
1008
+ typedDynamicApply(tree1, isInsertedApply, pt)
1006
1009
case _ =>
1007
1010
if (originalProto.isDropped) fun1
1008
1011
else if (fun1.symbol == defn.Compiletime_summonFrom )
Original file line number Diff line number Diff line change
1
+ import scala .language .dynamics
2
+
3
+ object Foo extends Dynamic :
4
+ def applyDynamic (name : String )(): Foo .type = this
5
+
6
+ object Test :
7
+ def test (): Foo .type =
8
+ Foo .xxx()
9
+ .xxx()
10
+ .xxx()
11
+ .xxx()
12
+ .xxx()
13
+ .xxx()
14
+ .xxx()
15
+ .xxx()
16
+ .xxx()
17
+ .xxx()
18
+ .xxx()
19
+ .xxx()
20
+ .xxx()
21
+ .xxx()
22
+ .xxx()
23
+ .xxx()
24
+ .xxx()
25
+ .xxx()
26
+ .xxx()
27
+ .xxx()
28
+ .xxx()
29
+ .xxx()
30
+ .xxx()
31
+ .xxx()
32
+ .xxx()
33
+ .xxx()
34
+ .xxx()
35
+ .xxx()
36
+ .xxx()
37
+ .xxx()
38
+ .xxx()
39
+ .xxx()
40
+ .xxx()
41
+ .xxx()
42
+ .xxx()
43
+ .xxx()
44
+ .xxx()
45
+ .xxx()
46
+ .xxx()
47
+ .xxx()
48
+ .xxx()
49
+ .xxx()
Original file line number Diff line number Diff line change
1
+ import scala .language .dynamics
2
+
3
+ object Foo extends Dynamic :
4
+ def applyDynamicNamed (name : String )(args : (String , Int )): Foo .type = this
5
+
6
+ object Test :
7
+ def test (): Foo .type =
8
+ Foo .xxx(a = 1 )
9
+ .xxx(a = 1 )
10
+ .xxx(a = 1 )
11
+ .xxx(a = 1 )
12
+ .xxx(a = 1 )
13
+ .xxx(a = 1 )
14
+ .xxx(a = 1 )
15
+ .xxx(a = 1 )
16
+ .xxx(a = 1 )
17
+ .xxx(a = 1 )
18
+ .xxx(a = 1 )
19
+ .xxx(a = 1 )
20
+ .xxx(a = 1 )
21
+ .xxx(a = 1 )
22
+ .xxx(a = 1 )
23
+ .xxx(a = 1 )
24
+ .xxx(a = 1 )
25
+ .xxx(a = 1 )
26
+ .xxx(a = 1 )
27
+ .xxx(a = 1 )
28
+ .xxx(a = 1 )
29
+ .xxx(a = 1 )
30
+ .xxx(a = 1 )
31
+ .xxx(a = 1 )
32
+ .xxx(a = 1 )
33
+ .xxx(a = 1 )
34
+ .xxx(a = 1 )
35
+ .xxx(a = 1 )
36
+ .xxx(a = 1 )
37
+ .xxx(a = 1 )
38
+ .xxx(a = 1 )
39
+ .xxx(a = 1 )
40
+ .xxx(a = 1 )
41
+ .xxx(a = 1 )
42
+ .xxx(a = 1 )
43
+ .xxx(a = 1 )
44
+ .xxx(a = 1 )
45
+ .xxx(a = 1 )
46
+ .xxx(a = 1 )
47
+ .xxx(a = 1 )
48
+ .xxx(a = 1 )
49
+ .xxx(a = 1 )
Original file line number Diff line number Diff line change
1
+ import scala .language .dynamics
2
+
3
+ object Foo extends Dynamic :
4
+ def selectDynamic (name : String ): Foo .type = this
5
+
6
+ object Test :
7
+ def test (): Foo .type =
8
+ Foo .xxx
9
+ .xxx
10
+ .xxx
11
+ .xxx
12
+ .xxx
13
+ .xxx
14
+ .xxx
15
+ .xxx
16
+ .xxx
17
+ .xxx
18
+ .xxx
19
+ .xxx
20
+ .xxx
21
+ .xxx
22
+ .xxx
23
+ .xxx
24
+ .xxx
25
+ .xxx
26
+ .xxx
27
+ .xxx
28
+ .xxx
29
+ .xxx
30
+ .xxx
31
+ .xxx
32
+ .xxx
33
+ .xxx
34
+ .xxx
35
+ .xxx
36
+ .xxx
37
+ .xxx
38
+ .xxx
39
+ .xxx
40
+ .xxx
41
+ .xxx
42
+ .xxx
43
+ .xxx
44
+ .xxx
45
+ .xxx
46
+ .xxx
47
+ .xxx
48
+ .xxx
49
+ .xxx
Original file line number Diff line number Diff line change
1
+ import scala .language .dynamics
2
+
3
+ object Foo extends Dynamic :
4
+ def applyDynamic (name : String )(): Foo .type = this
5
+ def applyDynamicNamed (name : String )(args : (String , Int )): Foo .type = this
6
+ def selectDynamic (name : String ): Foo .type = this
7
+
8
+ object Test :
9
+ def test (): Foo .type =
10
+ Foo .xxx
11
+ .xxx()
12
+ .xxx(a = 1 )
13
+ .xxx
14
+ .xxx()
15
+ .xxx(a = 1 )
16
+ .xxx
17
+ .xxx()
18
+ .xxx(a = 1 )
19
+ .xxx
20
+ .xxx()
21
+ .xxx(a = 1 )
22
+ .xxx
23
+ .xxx()
24
+ .xxx(a = 1 )
25
+ .xxx
26
+ .xxx()
27
+ .xxx(a = 1 )
28
+ .xxx
29
+ .xxx()
30
+ .xxx(a = 1 )
31
+ .xxx
32
+ .xxx()
33
+ .xxx(a = 1 )
34
+ .xxx
35
+ .xxx()
36
+ .xxx(a = 1 )
37
+ .xxx
38
+ .xxx()
39
+ .xxx(a = 1 )
40
+ .xxx
41
+ .xxx()
42
+ .xxx(a = 1 )
43
+ .xxx
44
+ .xxx()
45
+ .xxx(a = 1 )
46
+ .xxx
47
+ .xxx()
48
+ .xxx(a = 1 )
49
+ .xxx
You can’t perform that action at this time.
0 commit comments