summaryrefslogtreecommitdiff
path: root/test/files/presentation
diff options
context:
space:
mode:
authorLuc Bourlier <luc.bourlier@typesafe.com>2013-11-13 15:14:05 +0100
committerLuc Bourlier <luc.bourlier@typesafe.com>2013-11-21 12:24:43 +0100
commiteb9f0f797535386d44f9bc1f9e0c1765622baa29 (patch)
tree371b7fd9c8dda31328f81ae59ed066c9da483bbb /test/files/presentation
parent3a8796da1a321b5b7bb547c3c0cd9f62b5d0279d (diff)
downloadscala-eb9f0f797535386d44f9bc1f9e0c1765622baa29.tar.gz
scala-eb9f0f797535386d44f9bc1f9e0c1765622baa29.tar.bz2
scala-eb9f0f797535386d44f9bc1f9e0c1765622baa29.zip
[nomaster] Adds test cases for scope completion
(cherry picked from commit 3d55fe723f1af91f4d2db421f0e0965c583346dc)
Diffstat (limited to 'test/files/presentation')
-rw-r--r--test/files/presentation/scope-completion-1.check19
-rw-r--r--test/files/presentation/scope-completion-1/Test.scala3
-rw-r--r--test/files/presentation/scope-completion-1/src/Completions.scala12
-rw-r--r--test/files/presentation/scope-completion-2.check35
-rw-r--r--test/files/presentation/scope-completion-2/Test.scala3
-rw-r--r--test/files/presentation/scope-completion-2/src/Completions.scala35
-rw-r--r--test/files/presentation/scope-completion-3.check111
-rw-r--r--test/files/presentation/scope-completion-3/Test.scala3
-rw-r--r--test/files/presentation/scope-completion-3/src/Completions.scala106
-rw-r--r--test/files/presentation/scope-completion-4.check293
-rw-r--r--test/files/presentation/scope-completion-4/Test.scala3
-rw-r--r--test/files/presentation/scope-completion-4/src/Completions.scala84
12 files changed, 707 insertions, 0 deletions
diff --git a/test/files/presentation/scope-completion-1.check b/test/files/presentation/scope-completion-1.check
new file mode 100644
index 0000000000..93c637370d
--- /dev/null
+++ b/test/files/presentation/scope-completion-1.check
@@ -0,0 +1,19 @@
+reload: Completions.scala
+
+askScopeCompletion at Completions.scala(6,2)
+================================================================================
+[response] askScopeCompletion at (6,2)
+retrieved 3 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `object Completion2test.Completion2.type`
+================================================================================
+
+askScopeCompletion at Completions.scala(10,2)
+================================================================================
+[response] askScopeCompletion at (10,2)
+retrieved 3 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `constructor Completion2()test.Completion2.type`
+[accessible: true] `object Completion2test.Completion2.type`
+================================================================================
diff --git a/test/files/presentation/scope-completion-1/Test.scala b/test/files/presentation/scope-completion-1/Test.scala
new file mode 100644
index 0000000000..bec1131c4c
--- /dev/null
+++ b/test/files/presentation/scope-completion-1/Test.scala
@@ -0,0 +1,3 @@
+import scala.tools.nsc.interactive.tests.InteractiveTest
+
+object Test extends InteractiveTest \ No newline at end of file
diff --git a/test/files/presentation/scope-completion-1/src/Completions.scala b/test/files/presentation/scope-completion-1/src/Completions.scala
new file mode 100644
index 0000000000..c4eea6b261
--- /dev/null
+++ b/test/files/presentation/scope-completion-1/src/Completions.scala
@@ -0,0 +1,12 @@
+package test
+
+/* completion on empty class and object */
+
+class Completion1 {
+ /*_*/
+}
+
+object Completion2 {
+ /*_*/
+}
+
diff --git a/test/files/presentation/scope-completion-2.check b/test/files/presentation/scope-completion-2.check
new file mode 100644
index 0000000000..bd2aa621ff
--- /dev/null
+++ b/test/files/presentation/scope-completion-2.check
@@ -0,0 +1,35 @@
+reload: Completions.scala
+
+askScopeCompletion at Completions.scala(16,4)
+================================================================================
+[response] askScopeCompletion at (16,4)
+retrieved 11 members
+[accessible: true] `class Cc1Completion1.this.Cc1`
+[accessible: true] `class Co1test.Completion1.Co1`
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method fc1=> Int`
+[accessible: true] `method fo1=> Int`
+[accessible: true] `method test=> Unit`
+[accessible: true] `object Completion1test.Completion1.type`
+[accessible: true] `value ctest.Completion1`
+[accessible: true] `value vc1Int`
+[accessible: true] `value vo1Int`
+================================================================================
+
+askScopeCompletion at Completions.scala(32,4)
+================================================================================
+[response] askScopeCompletion at (32,4)
+retrieved 11 members
+[accessible: true] `class Cc1test.Completion1.c.Cc1`
+[accessible: true] `class Co1test.Completion1.Co1`
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `constructor Completion1()test.Completion1.type`
+[accessible: true] `method fc1=> Int`
+[accessible: true] `method fo1=> Int`
+[accessible: true] `method test=> Unit`
+[accessible: true] `object Completion1test.Completion1.type`
+[accessible: true] `value ctest.Completion1`
+[accessible: true] `value vo1Int`
+[accessible: false] `value vc1Int`
+================================================================================
diff --git a/test/files/presentation/scope-completion-2/Test.scala b/test/files/presentation/scope-completion-2/Test.scala
new file mode 100644
index 0000000000..bec1131c4c
--- /dev/null
+++ b/test/files/presentation/scope-completion-2/Test.scala
@@ -0,0 +1,3 @@
+import scala.tools.nsc.interactive.tests.InteractiveTest
+
+object Test extends InteractiveTest \ No newline at end of file
diff --git a/test/files/presentation/scope-completion-2/src/Completions.scala b/test/files/presentation/scope-completion-2/src/Completions.scala
new file mode 100644
index 0000000000..96d38f1b85
--- /dev/null
+++ b/test/files/presentation/scope-completion-2/src/Completions.scala
@@ -0,0 +1,35 @@
+package test
+
+/* private elements are visible in the companion class/object */
+
+class Completion1 {
+
+ import Completion1._
+
+ private val vc1 = 0
+ private def fc1 = 0
+
+ private class Cc1
+
+ def test {
+ // needs to be done in a method, because of SI-7280
+ /*_*/
+ }
+}
+
+object Completion1 {
+
+ val c = new Completion1()
+ import c._
+
+ private val vo1 = 0
+ private def fo1 = 0
+
+ private class Co1
+
+ def test {
+ // needs to be done in a method, because of SI-7280
+ /*_*/
+ }
+}
+
diff --git a/test/files/presentation/scope-completion-3.check b/test/files/presentation/scope-completion-3.check
new file mode 100644
index 0000000000..c48e310355
--- /dev/null
+++ b/test/files/presentation/scope-completion-3.check
@@ -0,0 +1,111 @@
+reload: Completions.scala
+
+askScopeCompletion at Completions.scala(75,2)
+================================================================================
+[response] askScopeCompletion at (75,2)
+retrieved 49 members
+[accessible: true] `class Base1test.Base1`
+[accessible: true] `class Cb1Completion1.this.Cb1`
+[accessible: true] `class Cc1Completion1.this.Cc1`
+[accessible: true] `class Cc2Completion1.this.Cc2`
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class Ct1Completion1.this.Ct1`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method fb1=> Int`
+[accessible: true] `method fb3=> Int`
+[accessible: true] `method fc1=> Int`
+[accessible: true] `method fc2=> Int`
+[accessible: true] `method ft1=> Int`
+[accessible: true] `method ft3=> Int`
+[accessible: true] `object Completion2test.Completion2.type`
+[accessible: true] `object Ob1Completion1.this.Ob1.type`
+[accessible: true] `object Oc1Completion1.this.Oc1.type`
+[accessible: true] `object Oc2Completion1.this.Oc2.type`
+[accessible: true] `object Ot1Completion1.this.Ot1.type`
+[accessible: true] `trait Trait1test.Trait1`
+[accessible: true] `type tb1Completion1.this.tb1`
+[accessible: true] `type tb3Completion1.this.tb3`
+[accessible: true] `type tc1Completion1.this.tc1`
+[accessible: true] `type tc2Completion1.this.tc2`
+[accessible: true] `type tt1Completion1.this.tt1`
+[accessible: true] `type tt3Completion1.this.tt3`
+[accessible: true] `value vb3Int`
+[accessible: true] `value vc1Int`
+[accessible: true] `value vc2Int`
+[accessible: true] `value vt3Int`
+[accessible: true] `variable rb3Int`
+[accessible: true] `variable rc1Int`
+[accessible: true] `variable rc2Int`
+[accessible: true] `variable rt3Int`
+[accessible: false] `class Cb2Completion1.this.Cb2`
+[accessible: false] `class Ct2Completion1.this.Ct2`
+[accessible: false] `method fb2=> Int`
+[accessible: false] `method ft2=> Int`
+[accessible: false] `object Ob2Completion1.this.Ob2.type`
+[accessible: false] `object Ot2Completion1.this.Ot2.type`
+[accessible: false] `type tb2Completion1.this.tb2`
+[accessible: false] `type tt2Completion1.this.tt2`
+[accessible: false] `value vb1Int`
+[accessible: false] `value vb2Int`
+[accessible: false] `value vt1Int`
+[accessible: false] `value vt2Int`
+[accessible: false] `variable rb1Int`
+[accessible: false] `variable rb2Int`
+[accessible: false] `variable rt1Int`
+[accessible: false] `variable rt2Int`
+================================================================================
+
+askScopeCompletion at Completions.scala(104,2)
+================================================================================
+[response] askScopeCompletion at (104,2)
+retrieved 49 members
+[accessible: true] `class Base1test.Base1`
+[accessible: true] `class Cb1test.Completion2.Cb1`
+[accessible: true] `class Co1test.Completion2.Co1`
+[accessible: true] `class Co2test.Completion2.Co2`
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class Ct1test.Completion2.Ct1`
+[accessible: true] `constructor Completion2()test.Completion2.type`
+[accessible: true] `method fb1=> Int`
+[accessible: true] `method fb3=> Int`
+[accessible: true] `method fo1=> Int`
+[accessible: true] `method fo2=> Int`
+[accessible: true] `method ft1=> Int`
+[accessible: true] `method ft3=> Int`
+[accessible: true] `object Completion2test.Completion2.type`
+[accessible: true] `object Ob1test.Completion2.Ob1.type`
+[accessible: true] `object Oo1test.Completion2.Oo1.type`
+[accessible: true] `object Oo2test.Completion2.Oo2.type`
+[accessible: true] `object Ot1test.Completion2.Ot1.type`
+[accessible: true] `trait Trait1test.Trait1`
+[accessible: true] `type tb1test.Completion2.tb1`
+[accessible: true] `type tb3test.Completion2.tb3`
+[accessible: true] `type to1test.Completion2.to1`
+[accessible: true] `type to2test.Completion2.to2`
+[accessible: true] `type tt1test.Completion2.tt1`
+[accessible: true] `type tt3test.Completion2.tt3`
+[accessible: true] `value vb3Int`
+[accessible: true] `value vo1Int`
+[accessible: true] `value vo2Int`
+[accessible: true] `value vt3Int`
+[accessible: true] `variable rb3Int`
+[accessible: true] `variable ro1Int`
+[accessible: true] `variable ro2Int`
+[accessible: true] `variable rt3Int`
+[accessible: false] `class Cb2test.Completion2.Cb2`
+[accessible: false] `class Ct2test.Completion2.Ct2`
+[accessible: false] `method fb2=> Int`
+[accessible: false] `method ft2=> Int`
+[accessible: false] `object Ob2test.Completion2.Ob2.type`
+[accessible: false] `object Ot2test.Completion2.Ot2.type`
+[accessible: false] `type tb2test.Completion2.tb2`
+[accessible: false] `type tt2test.Completion2.tt2`
+[accessible: false] `value vb1Int`
+[accessible: false] `value vb2Int`
+[accessible: false] `value vt1Int`
+[accessible: false] `value vt2Int`
+[accessible: false] `variable rb1Int`
+[accessible: false] `variable rb2Int`
+[accessible: false] `variable rt1Int`
+[accessible: false] `variable rt2Int`
+================================================================================
diff --git a/test/files/presentation/scope-completion-3/Test.scala b/test/files/presentation/scope-completion-3/Test.scala
new file mode 100644
index 0000000000..bec1131c4c
--- /dev/null
+++ b/test/files/presentation/scope-completion-3/Test.scala
@@ -0,0 +1,3 @@
+import scala.tools.nsc.interactive.tests.InteractiveTest
+
+object Test extends InteractiveTest \ No newline at end of file
diff --git a/test/files/presentation/scope-completion-3/src/Completions.scala b/test/files/presentation/scope-completion-3/src/Completions.scala
new file mode 100644
index 0000000000..18cef1cefa
--- /dev/null
+++ b/test/files/presentation/scope-completion-3/src/Completions.scala
@@ -0,0 +1,106 @@
+package test
+
+/* check availability of members defined locally and in hierachy */
+
+abstract class Base1 {
+
+ type tb1 = Int
+ val vb1 = 0
+ var rb1 = 0
+ def fb1 = 0
+ class Cb1
+ object Ob1
+
+ private type tb2 = Int
+ private val vb2 = 0
+ private var rb2 = 0
+ private def fb2 = 0
+ private class Cb2
+ private object Ob2
+
+ type tb3
+ val vb3: Int
+ var rb3: Int
+ def fb3: Int
+}
+
+trait Trait1 {
+
+ type tt1 = Int
+ val vt1 = 0
+ var rt1 = 0
+ def ft1 = 0
+ class Ct1
+ object Ot1
+
+ private type tt2 = Int
+ private val vt2 = 0
+ private var rt2 = 0
+ private def ft2 = 0
+ private class Ct2
+ private object Ot2
+
+ type tt3
+ val vt3: Int
+ var rt3: Int
+ def ft3: Int
+}
+
+class Completion1 extends Base1 with Trait1 {
+
+ type tc1 = Int
+ val vc1 = 0
+ var rc1 = 0
+ def fc1 = 0
+ class Cc1
+ object Oc1
+
+ private type tc2 = Int
+ private val vc2 = 0
+ private var rc2 = 0
+ private def fc2 = 0
+ private class Cc2
+ private object Oc2
+
+ override type tb3 = Int
+ override val vb3 = 12
+ override var rb3 = 12
+ override def fb3 = 12
+
+ override type tt3 = Int
+ override val vt3 = 12
+ override var rt3 = 12
+ override def ft3 = 12
+
+ /*_*/
+}
+
+object Completion2 extends Base1 with Trait1 {
+
+ type to1 = Int
+ val vo1 = 0
+ var ro1 = 0
+ def fo1 = 0
+ class Co1
+ object Oo1
+
+ private type to2 = Int
+ private val vo2 = 0
+ private var ro2 = 0
+ private def fo2 = 0
+ private class Co2
+ private object Oo2
+
+ override type tb3 = Int
+ override val vb3 = 12
+ override var rb3 = 12
+ override def fb3 = 12
+
+ override type tt3 = Int
+ override val vt3 = 12
+ override var rt3 = 12
+ override def ft3 = 12
+
+ /*_*/
+}
+
diff --git a/test/files/presentation/scope-completion-4.check b/test/files/presentation/scope-completion-4.check
new file mode 100644
index 0000000000..f6241cf7f7
--- /dev/null
+++ b/test/files/presentation/scope-completion-4.check
@@ -0,0 +1,293 @@
+reload: Completions.scala
+
+askScopeCompletion at Completions.scala(12,8)
+================================================================================
+[response] askScopeCompletion at (12,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fcfc`
+[accessible: true] `class ffcffc`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method ff=> Unit`
+[accessible: true] `method fff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(15,6)
+================================================================================
+[response] askScopeCompletion at (15,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fcfc`
+[accessible: true] `class ffcffc`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method ff=> Unit`
+[accessible: true] `method fff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(18,8)
+================================================================================
+[response] askScopeCompletion at (18,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fcfc`
+[accessible: true] `class ffcffc`
+[accessible: true] `constructor ffc()ffc`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method ff=> Unit`
+[accessible: true] `method fff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(21,6)
+================================================================================
+[response] askScopeCompletion at (21,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fcfc`
+[accessible: true] `class ffcffc`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method ff=> Unit`
+[accessible: true] `method fff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(24,4)
+================================================================================
+[response] askScopeCompletion at (24,4)
+retrieved 6 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fcfc`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method ff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(29,8)
+================================================================================
+[response] askScopeCompletion at (29,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fccfc.this.fcc`
+[accessible: true] `class fcfc`
+[accessible: true] `constructor fc()fc`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method fcf=> Unit`
+[accessible: true] `method ff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(32,6)
+================================================================================
+[response] askScopeCompletion at (32,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fccfc.this.fcc`
+[accessible: true] `class fcfc`
+[accessible: true] `constructor fc()fc`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method fcf=> Unit`
+[accessible: true] `method ff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(35,8)
+================================================================================
+[response] askScopeCompletion at (35,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fccfc.this.fcc`
+[accessible: true] `class fcfc`
+[accessible: true] `constructor fcc()fc.this.fcc`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method fcf=> Unit`
+[accessible: true] `method ff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(38,6)
+================================================================================
+[response] askScopeCompletion at (38,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fccfc.this.fcc`
+[accessible: true] `class fcfc`
+[accessible: true] `constructor fc()fc`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method fcf=> Unit`
+[accessible: true] `method ff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(41,4)
+================================================================================
+[response] askScopeCompletion at (41,4)
+retrieved 6 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class fcfc`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+[accessible: true] `method ff=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(44,2)
+================================================================================
+[response] askScopeCompletion at (44,2)
+retrieved 4 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(51,8)
+================================================================================
+[response] askScopeCompletion at (51,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class ccccc.this.ccc`
+[accessible: true] `constructor ccc()cc.this.ccc`
+[accessible: true] `method ccf=> Unit`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(54,6)
+================================================================================
+[response] askScopeCompletion at (54,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class ccccc.this.ccc`
+[accessible: true] `constructor cc()c.this.cc`
+[accessible: true] `method ccf=> Unit`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(57,8)
+================================================================================
+[response] askScopeCompletion at (57,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class ccccc.this.ccc`
+[accessible: true] `constructor cc()c.this.cc`
+[accessible: true] `method ccf=> Unit`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(60,6)
+================================================================================
+[response] askScopeCompletion at (60,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class ccccc.this.ccc`
+[accessible: true] `constructor cc()c.this.cc`
+[accessible: true] `method ccf=> Unit`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(63,4)
+================================================================================
+[response] askScopeCompletion at (63,4)
+retrieved 6 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `constructor c()Completion1.this.c`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(68,8)
+================================================================================
+[response] askScopeCompletion at (68,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class cfccfc`
+[accessible: true] `constructor cfc()cfc`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method cff=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(71,6)
+================================================================================
+[response] askScopeCompletion at (71,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class cfccfc`
+[accessible: true] `constructor c()Completion1.this.c`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method cff=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(74,8)
+================================================================================
+[response] askScopeCompletion at (74,8)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class cfccfc`
+[accessible: true] `constructor c()Completion1.this.c`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method cff=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(77,6)
+================================================================================
+[response] askScopeCompletion at (77,6)
+retrieved 8 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `class cfccfc`
+[accessible: true] `constructor c()Completion1.this.c`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method cff=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(80,4)
+================================================================================
+[response] askScopeCompletion at (80,4)
+retrieved 6 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `class ccc.this.cc`
+[accessible: true] `constructor c()Completion1.this.c`
+[accessible: true] `method cf=> Unit`
+[accessible: true] `method f=> Unit`
+================================================================================
+
+askScopeCompletion at Completions.scala(83,2)
+================================================================================
+[response] askScopeCompletion at (83,2)
+retrieved 4 members
+[accessible: true] `class Completion1test.Completion1`
+[accessible: true] `class cCompletion1.this.c`
+[accessible: true] `constructor Completion1()test.Completion1`
+[accessible: true] `method f=> Unit`
+================================================================================
diff --git a/test/files/presentation/scope-completion-4/Test.scala b/test/files/presentation/scope-completion-4/Test.scala
new file mode 100644
index 0000000000..bec1131c4c
--- /dev/null
+++ b/test/files/presentation/scope-completion-4/Test.scala
@@ -0,0 +1,3 @@
+import scala.tools.nsc.interactive.tests.InteractiveTest
+
+object Test extends InteractiveTest \ No newline at end of file
diff --git a/test/files/presentation/scope-completion-4/src/Completions.scala b/test/files/presentation/scope-completion-4/src/Completions.scala
new file mode 100644
index 0000000000..d11315720a
--- /dev/null
+++ b/test/files/presentation/scope-completion-4/src/Completions.scala
@@ -0,0 +1,84 @@
+package test
+
+/* check that members defined in sub-block are not visible*/
+
+class Completion1 {
+
+ def f {
+
+ def ff {
+
+ def fff {
+ /*_*/
+ }
+
+ /*_*/
+
+ class ffc {
+ /*_*/
+ }
+
+ /*_*/
+ }
+
+ /*_*/
+
+ class fc {
+
+ def fcf {
+ /*_*/
+ }
+
+ /*_*/
+
+ class fcc {
+ /*_*/
+ }
+
+ /*_*/
+ }
+
+ /*_*/
+ }
+
+ /*_*/
+
+ class c {
+
+ class cc {
+
+ class ccc {
+ /*_*/
+ }
+
+ /*_*/
+
+ def ccf {
+ /*_*/
+ }
+
+ /*_*/
+ }
+
+ /*_*/
+
+ def cf {
+
+ class cfc {
+ /*_*/
+ }
+
+ /*_*/
+
+ def cff {
+ /*_*/
+ }
+
+ /*_*/
+ }
+
+ /*_*/
+ }
+
+ /*_*/
+}