summaryrefslogtreecommitdiff
path: root/test/pending/pos/bug1957.scala
diff options
context:
space:
mode:
authorGilles Dubochet <gilles.dubochet@epfl.ch>2009-06-09 13:22:01 +0000
committerGilles Dubochet <gilles.dubochet@epfl.ch>2009-06-09 13:22:01 +0000
commitf205501be80001855b06d64c4260adafe6dc4417 (patch)
tree4e5d936a17e5171403ee3dddba5a67b21b4d5e6e /test/pending/pos/bug1957.scala
parent238ad426ba6166223595c79a55fbeb768843d74e (diff)
downloadscala-f205501be80001855b06d64c4260adafe6dc4417.tar.gz
scala-f205501be80001855b06d64c4260adafe6dc4417.tar.bz2
scala-f205501be80001855b06d64c4260adafe6dc4417.zip
Added a series of pending test cases.
Diffstat (limited to 'test/pending/pos/bug1957.scala')
-rw-r--r--test/pending/pos/bug1957.scala38
1 files changed, 38 insertions, 0 deletions
diff --git a/test/pending/pos/bug1957.scala b/test/pending/pos/bug1957.scala
new file mode 100644
index 0000000000..62800524eb
--- /dev/null
+++ b/test/pending/pos/bug1957.scala
@@ -0,0 +1,38 @@
+object Test {
+ abstract class Settings {}
+
+ abstract class Grist
+ { self =>
+ type settingsType <: Settings
+ type moduleType <: Module {type settingsType = self.settingsType}
+ val module: moduleType
+ }
+
+ abstract class Tool
+ { self =>
+ type settingsType <: Settings
+ type moduleType = Module { type settingsType = self.settingsType }
+ type gristType = Grist { type moduleType <: self.moduleType; type settingsType <: self.settingsType }
+
+ def inputGrist: List[gristType]
+ }
+
+ abstract class Module
+ { self =>
+ type settingsType <: Settings
+ final type commonModuleType = Module {type settingsType = self.settingsType}
+ type selfType >: self.type <: commonModuleType
+
+ // BTW: if we use the commented out type declarations, the code compiles successfully
+ // type gristType = Grist {type settingsType <: self.settingsType; type moduleType <: commonModuleType }
+
+ val tools: List[Tool {type settingsType = self.settingsType}]
+
+ protected def f: List[commonModuleType] =
+ {
+ val inputGrists = tools.flatMap(_.inputGrist) // val inputGrists: List[gristType] =
+ inputGrists.map(_.module)
+ }
+
+ }
+} \ No newline at end of file