diff options
author | Martin Odersky <odersky@gmail.com> | 2007-07-02 12:01:28 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2007-07-02 12:01:28 +0000 |
commit | 81a4d20bf38e5348e5b1b2faa0fcedafa458aca3 (patch) | |
tree | 3c5b912f05bd1350325a2d693542b84c3556a4d0 /test/files | |
parent | 8eed99684f2a351ee6d6db28899204c3f4ef7d73 (diff) | |
download | scala-81a4d20bf38e5348e5b1b2faa0fcedafa458aca3.tar.gz scala-81a4d20bf38e5348e5b1b2faa0fcedafa458aca3.tar.bz2 scala-81a4d20bf38e5348e5b1b2faa0fcedafa458aca3.zip |
fixed bug1183
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/bug1183.check | 17 | ||||
-rw-r--r-- | test/files/neg/bug1183.scala | 38 | ||||
-rw-r--r-- | test/files/pos/bug1189.scala | 8 |
3 files changed, 63 insertions, 0 deletions
diff --git a/test/files/neg/bug1183.check b/test/files/neg/bug1183.check new file mode 100644 index 0000000000..9b42dccb8d --- /dev/null +++ b/test/files/neg/bug1183.check @@ -0,0 +1,17 @@ +bug1183.scala:10: error: name clash: class Foo defines object Baz + and its companion module object Foo defines class Baz + object Baz + ^ +bug1183.scala:11: error: name clash: class Foo defines class Bam + and its companion module object Foo defines object Bam + class Bam + ^ +bug1183.scala:12: error: name clash: class Foo defines object Bar + and its companion module object Foo defines class Bar + object Bar + ^ +bug1183.scala:13: error: name clash: class Foo defines class Bar + and its companion module object Foo defines class Bar + case class Bar(i:Int) + ^ +four errors found diff --git a/test/files/neg/bug1183.scala b/test/files/neg/bug1183.scala new file mode 100644 index 0000000000..a845126488 --- /dev/null +++ b/test/files/neg/bug1183.scala @@ -0,0 +1,38 @@ +import scala.testing.SUnit._ + +object Test extends TestConsoleMain { + + def suite = new TestSuite( + new Test717 + ) + + class Foo(j:Int) { + object Baz + class Bam + object Bar + case class Bar(i:Int) + } + + + class Test717 extends TestCase("#717 test path of case classes") { + val foo1 = new Foo(1) + + override def runTest() = { + val res = (foo1.Bar(2):Any) match { + case foo1.Bar(2) => true // (1) + } + assertTrue("ok", res); + } + } + + // (2) + object Foo { + class Bar(val x : String) + class Baz + object Bam + object Bar + + def unapply(s : String) : Option[Bar] = Some(new Bar(s)) + } + +} diff --git a/test/files/pos/bug1189.scala b/test/files/pos/bug1189.scala new file mode 100644 index 0000000000..97d2e4488c --- /dev/null +++ b/test/files/pos/bug1189.scala @@ -0,0 +1,8 @@ +object test extends Application { + case class Cell[T](x: T) + type U = Cell[T1] forSome { type T1 } + def f[T](x: Any): U = x match { case y: Cell[_] => y } + + var x: U = Cell(1) + println(x) +} |