Skip to content

Commit eb9f0f7

Browse files
author
Luc Bourlier
committed
[nomaster] Adds test cases for scope completion
(cherry picked from commit 3d55fe7)
1 parent 3a8796d commit eb9f0f7

File tree

12 files changed

+707
-0
lines changed

12 files changed

+707
-0
lines changed
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
reload: Completions.scala
2+
3+
askScopeCompletion at Completions.scala(6,2)
4+
================================================================================
5+
[response] askScopeCompletion at (6,2)
6+
retrieved 3 members
7+
[accessible: true] `class Completion1test.Completion1`
8+
[accessible: true] `constructor Completion1()test.Completion1`
9+
[accessible: true] `object Completion2test.Completion2.type`
10+
================================================================================
11+
12+
askScopeCompletion at Completions.scala(10,2)
13+
================================================================================
14+
[response] askScopeCompletion at (10,2)
15+
retrieved 3 members
16+
[accessible: true] `class Completion1test.Completion1`
17+
[accessible: true] `constructor Completion2()test.Completion2.type`
18+
[accessible: true] `object Completion2test.Completion2.type`
19+
================================================================================
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import scala.tools.nsc.interactive.tests.InteractiveTest
2+
3+
object Test extends InteractiveTest
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package test
2+
3+
/* completion on empty class and object */
4+
5+
class Completion1 {
6+
/*_*/
7+
}
8+
9+
object Completion2 {
10+
/*_*/
11+
}
12+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
reload: Completions.scala
2+
3+
askScopeCompletion at Completions.scala(16,4)
4+
================================================================================
5+
[response] askScopeCompletion at (16,4)
6+
retrieved 11 members
7+
[accessible: true] `class Cc1Completion1.this.Cc1`
8+
[accessible: true] `class Co1test.Completion1.Co1`
9+
[accessible: true] `class Completion1test.Completion1`
10+
[accessible: true] `constructor Completion1()test.Completion1`
11+
[accessible: true] `method fc1=> Int`
12+
[accessible: true] `method fo1=> Int`
13+
[accessible: true] `method test=> Unit`
14+
[accessible: true] `object Completion1test.Completion1.type`
15+
[accessible: true] `value ctest.Completion1`
16+
[accessible: true] `value vc1Int`
17+
[accessible: true] `value vo1Int`
18+
================================================================================
19+
20+
askScopeCompletion at Completions.scala(32,4)
21+
================================================================================
22+
[response] askScopeCompletion at (32,4)
23+
retrieved 11 members
24+
[accessible: true] `class Cc1test.Completion1.c.Cc1`
25+
[accessible: true] `class Co1test.Completion1.Co1`
26+
[accessible: true] `class Completion1test.Completion1`
27+
[accessible: true] `constructor Completion1()test.Completion1.type`
28+
[accessible: true] `method fc1=> Int`
29+
[accessible: true] `method fo1=> Int`
30+
[accessible: true] `method test=> Unit`
31+
[accessible: true] `object Completion1test.Completion1.type`
32+
[accessible: true] `value ctest.Completion1`
33+
[accessible: true] `value vo1Int`
34+
[accessible: false] `value vc1Int`
35+
================================================================================
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import scala.tools.nsc.interactive.tests.InteractiveTest
2+
3+
object Test extends InteractiveTest
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package test
2+
3+
/* private elements are visible in the companion class/object */
4+
5+
class Completion1 {
6+
7+
import Completion1._
8+
9+
private val vc1 = 0
10+
private def fc1 = 0
11+
12+
private class Cc1
13+
14+
def test {
15+
// needs to be done in a method, because of SI-7280
16+
/*_*/
17+
}
18+
}
19+
20+
object Completion1 {
21+
22+
val c = new Completion1()
23+
import c._
24+
25+
private val vo1 = 0
26+
private def fo1 = 0
27+
28+
private class Co1
29+
30+
def test {
31+
// needs to be done in a method, because of SI-7280
32+
/*_*/
33+
}
34+
}
35+
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
reload: Completions.scala
2+
3+
askScopeCompletion at Completions.scala(75,2)
4+
================================================================================
5+
[response] askScopeCompletion at (75,2)
6+
retrieved 49 members
7+
[accessible: true] `class Base1test.Base1`
8+
[accessible: true] `class Cb1Completion1.this.Cb1`
9+
[accessible: true] `class Cc1Completion1.this.Cc1`
10+
[accessible: true] `class Cc2Completion1.this.Cc2`
11+
[accessible: true] `class Completion1test.Completion1`
12+
[accessible: true] `class Ct1Completion1.this.Ct1`
13+
[accessible: true] `constructor Completion1()test.Completion1`
14+
[accessible: true] `method fb1=> Int`
15+
[accessible: true] `method fb3=> Int`
16+
[accessible: true] `method fc1=> Int`
17+
[accessible: true] `method fc2=> Int`
18+
[accessible: true] `method ft1=> Int`
19+
[accessible: true] `method ft3=> Int`
20+
[accessible: true] `object Completion2test.Completion2.type`
21+
[accessible: true] `object Ob1Completion1.this.Ob1.type`
22+
[accessible: true] `object Oc1Completion1.this.Oc1.type`
23+
[accessible: true] `object Oc2Completion1.this.Oc2.type`
24+
[accessible: true] `object Ot1Completion1.this.Ot1.type`
25+
[accessible: true] `trait Trait1test.Trait1`
26+
[accessible: true] `type tb1Completion1.this.tb1`
27+
[accessible: true] `type tb3Completion1.this.tb3`
28+
[accessible: true] `type tc1Completion1.this.tc1`
29+
[accessible: true] `type tc2Completion1.this.tc2`
30+
[accessible: true] `type tt1Completion1.this.tt1`
31+
[accessible: true] `type tt3Completion1.this.tt3`
32+
[accessible: true] `value vb3Int`
33+
[accessible: true] `value vc1Int`
34+
[accessible: true] `value vc2Int`
35+
[accessible: true] `value vt3Int`
36+
[accessible: true] `variable rb3Int`
37+
[accessible: true] `variable rc1Int`
38+
[accessible: true] `variable rc2Int`
39+
[accessible: true] `variable rt3Int`
40+
[accessible: false] `class Cb2Completion1.this.Cb2`
41+
[accessible: false] `class Ct2Completion1.this.Ct2`
42+
[accessible: false] `method fb2=> Int`
43+
[accessible: false] `method ft2=> Int`
44+
[accessible: false] `object Ob2Completion1.this.Ob2.type`
45+
[accessible: false] `object Ot2Completion1.this.Ot2.type`
46+
[accessible: false] `type tb2Completion1.this.tb2`
47+
[accessible: false] `type tt2Completion1.this.tt2`
48+
[accessible: false] `value vb1Int`
49+
[accessible: false] `value vb2Int`
50+
[accessible: false] `value vt1Int`
51+
[accessible: false] `value vt2Int`
52+
[accessible: false] `variable rb1Int`
53+
[accessible: false] `variable rb2Int`
54+
[accessible: false] `variable rt1Int`
55+
[accessible: false] `variable rt2Int`
56+
================================================================================
57+
58+
askScopeCompletion at Completions.scala(104,2)
59+
================================================================================
60+
[response] askScopeCompletion at (104,2)
61+
retrieved 49 members
62+
[accessible: true] `class Base1test.Base1`
63+
[accessible: true] `class Cb1test.Completion2.Cb1`
64+
[accessible: true] `class Co1test.Completion2.Co1`
65+
[accessible: true] `class Co2test.Completion2.Co2`
66+
[accessible: true] `class Completion1test.Completion1`
67+
[accessible: true] `class Ct1test.Completion2.Ct1`
68+
[accessible: true] `constructor Completion2()test.Completion2.type`
69+
[accessible: true] `method fb1=> Int`
70+
[accessible: true] `method fb3=> Int`
71+
[accessible: true] `method fo1=> Int`
72+
[accessible: true] `method fo2=> Int`
73+
[accessible: true] `method ft1=> Int`
74+
[accessible: true] `method ft3=> Int`
75+
[accessible: true] `object Completion2test.Completion2.type`
76+
[accessible: true] `object Ob1test.Completion2.Ob1.type`
77+
[accessible: true] `object Oo1test.Completion2.Oo1.type`
78+
[accessible: true] `object Oo2test.Completion2.Oo2.type`
79+
[accessible: true] `object Ot1test.Completion2.Ot1.type`
80+
[accessible: true] `trait Trait1test.Trait1`
81+
[accessible: true] `type tb1test.Completion2.tb1`
82+
[accessible: true] `type tb3test.Completion2.tb3`
83+
[accessible: true] `type to1test.Completion2.to1`
84+
[accessible: true] `type to2test.Completion2.to2`
85+
[accessible: true] `type tt1test.Completion2.tt1`
86+
[accessible: true] `type tt3test.Completion2.tt3`
87+
[accessible: true] `value vb3Int`
88+
[accessible: true] `value vo1Int`
89+
[accessible: true] `value vo2Int`
90+
[accessible: true] `value vt3Int`
91+
[accessible: true] `variable rb3Int`
92+
[accessible: true] `variable ro1Int`
93+
[accessible: true] `variable ro2Int`
94+
[accessible: true] `variable rt3Int`
95+
[accessible: false] `class Cb2test.Completion2.Cb2`
96+
[accessible: false] `class Ct2test.Completion2.Ct2`
97+
[accessible: false] `method fb2=> Int`
98+
[accessible: false] `method ft2=> Int`
99+
[accessible: false] `object Ob2test.Completion2.Ob2.type`
100+
[accessible: false] `object Ot2test.Completion2.Ot2.type`
101+
[accessible: false] `type tb2test.Completion2.tb2`
102+
[accessible: false] `type tt2test.Completion2.tt2`
103+
[accessible: false] `value vb1Int`
104+
[accessible: false] `value vb2Int`
105+
[accessible: false] `value vt1Int`
106+
[accessible: false] `value vt2Int`
107+
[accessible: false] `variable rb1Int`
108+
[accessible: false] `variable rb2Int`
109+
[accessible: false] `variable rt1Int`
110+
[accessible: false] `variable rt2Int`
111+
================================================================================
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import scala.tools.nsc.interactive.tests.InteractiveTest
2+
3+
object Test extends InteractiveTest
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
package test
2+
3+
/* check availability of members defined locally and in hierachy */
4+
5+
abstract class Base1 {
6+
7+
type tb1 = Int
8+
val vb1 = 0
9+
var rb1 = 0
10+
def fb1 = 0
11+
class Cb1
12+
object Ob1
13+
14+
private type tb2 = Int
15+
private val vb2 = 0
16+
private var rb2 = 0
17+
private def fb2 = 0
18+
private class Cb2
19+
private object Ob2
20+
21+
type tb3
22+
val vb3: Int
23+
var rb3: Int
24+
def fb3: Int
25+
}
26+
27+
trait Trait1 {
28+
29+
type tt1 = Int
30+
val vt1 = 0
31+
var rt1 = 0
32+
def ft1 = 0
33+
class Ct1
34+
object Ot1
35+
36+
private type tt2 = Int
37+
private val vt2 = 0
38+
private var rt2 = 0
39+
private def ft2 = 0
40+
private class Ct2
41+
private object Ot2
42+
43+
type tt3
44+
val vt3: Int
45+
var rt3: Int
46+
def ft3: Int
47+
}
48+
49+
class Completion1 extends Base1 with Trait1 {
50+
51+
type tc1 = Int
52+
val vc1 = 0
53+
var rc1 = 0
54+
def fc1 = 0
55+
class Cc1
56+
object Oc1
57+
58+
private type tc2 = Int
59+
private val vc2 = 0
60+
private var rc2 = 0
61+
private def fc2 = 0
62+
private class Cc2
63+
private object Oc2
64+
65+
override type tb3 = Int
66+
override val vb3 = 12
67+
override var rb3 = 12
68+
override def fb3 = 12
69+
70+
override type tt3 = Int
71+
override val vt3 = 12
72+
override var rt3 = 12
73+
override def ft3 = 12
74+
75+
/*_*/
76+
}
77+
78+
object Completion2 extends Base1 with Trait1 {
79+
80+
type to1 = Int
81+
val vo1 = 0
82+
var ro1 = 0
83+
def fo1 = 0
84+
class Co1
85+
object Oo1
86+
87+
private type to2 = Int
88+
private val vo2 = 0
89+
private var ro2 = 0
90+
private def fo2 = 0
91+
private class Co2
92+
private object Oo2
93+
94+
override type tb3 = Int
95+
override val vb3 = 12
96+
override var rb3 = 12
97+
override def fb3 = 12
98+
99+
override type tt3 = Int
100+
override val vt3 = 12
101+
override var rt3 = 12
102+
override def ft3 = 12
103+
104+
/*_*/
105+
}
106+

0 commit comments

Comments
 (0)