diff options
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/bug1210.check | 7 | ||||
-rwxr-xr-x | test/files/neg/bug1210.scala | 28 |
2 files changed, 35 insertions, 0 deletions
diff --git a/test/files/neg/bug1210.check b/test/files/neg/bug1210.check new file mode 100644 index 0000000000..4db920556f --- /dev/null +++ b/test/files/neg/bug1210.check @@ -0,0 +1,7 @@ +bug1210.scala:13: error: illegal cyclic reference involving type Settings + val v: List[selfType] = f[selfType]((x: selfType) => x.v) + ^ +bug1210.scala:24: error: illegal cyclic reference involving type Settings + f[selfType](_.g) + ^ +two errors found diff --git a/test/files/neg/bug1210.scala b/test/files/neg/bug1210.scala new file mode 100755 index 0000000000..eb163a956e --- /dev/null +++ b/test/files/neg/bug1210.scala @@ -0,0 +1,28 @@ +object Test +{ + def f[T](recurse: T => List[T]): List[T] = + { + Nil + } + + abstract class M + { self => + type Settings + type selfType = M {type Settings = self.Settings} + + val v: List[selfType] = f[selfType]((x: selfType) => x.v) + } + + abstract class M2 + { self => + type Settings + type selfType = M2 {type Settings = self.Settings} + + def g: List[selfType] = Nil + + { + f[selfType](_.g) + } + } +} + |