diff options
author | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-05-25 15:35:06 -0700 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@epfl.ch> | 2012-05-25 15:35:06 -0700 |
commit | b53b71c100067f210a0f3bb4a6cbedee75e697dd (patch) | |
tree | 4b774713103282d49517575a9260e17439657186 /test/files | |
parent | be1ad4b26c1f143f03b811e0809141eb50c8ba75 (diff) | |
parent | 510f63778011060a8d912085b7248ef69e4217f8 (diff) | |
download | scala-b53b71c100067f210a0f3bb4a6cbedee75e697dd.tar.gz scala-b53b71c100067f210a0f3bb4a6cbedee75e697dd.tar.bz2 scala-b53b71c100067f210a0f3bb4a6cbedee75e697dd.zip |
Merge pull request #625 from retronym/ticket/5318-3
SI-5318 Make implicit divergence checking PolyType aware.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/t5318.check | 5 | ||||
-rw-r--r-- | test/files/neg/t5318.scala | 8 | ||||
-rw-r--r-- | test/files/neg/t5318b.check | 5 | ||||
-rw-r--r-- | test/files/neg/t5318b.scala | 8 | ||||
-rw-r--r-- | test/files/neg/t5318c.check | 5 | ||||
-rw-r--r-- | test/files/neg/t5318c.scala | 14 |
6 files changed, 45 insertions, 0 deletions
diff --git a/test/files/neg/t5318.check b/test/files/neg/t5318.check new file mode 100644 index 0000000000..d6a3a57935 --- /dev/null +++ b/test/files/neg/t5318.check @@ -0,0 +1,5 @@ +t5318.scala:7: error: diverging implicit expansion for type CompilerHang.this.TC[F] +starting with method tc in class CompilerHang + breakage // type checker doesn't terminate, should report inference failure + ^ +one error found diff --git a/test/files/neg/t5318.scala b/test/files/neg/t5318.scala new file mode 100644 index 0000000000..8009c66e6b --- /dev/null +++ b/test/files/neg/t5318.scala @@ -0,0 +1,8 @@ +class CompilerHang { + trait TC[M[_]] + trait S[A] + + implicit def tc[M[_]](implicit M0: TC[M]): TC[S] = null + def breakage[F[_] : TC] = 0 + breakage // type checker doesn't terminate, should report inference failure +}
\ No newline at end of file diff --git a/test/files/neg/t5318b.check b/test/files/neg/t5318b.check new file mode 100644 index 0000000000..47a10d6733 --- /dev/null +++ b/test/files/neg/t5318b.check @@ -0,0 +1,5 @@ +t5318b.scala:7: error: diverging implicit expansion for type DivergingImplicitReported.this.TC[F] +starting with method tc in class DivergingImplicitReported + breakage // correct: diverging implicit expansion + ^ +one error found
\ No newline at end of file diff --git a/test/files/neg/t5318b.scala b/test/files/neg/t5318b.scala new file mode 100644 index 0000000000..123f8b4e04 --- /dev/null +++ b/test/files/neg/t5318b.scala @@ -0,0 +1,8 @@ +class DivergingImplicitReported { + trait TC[M] + trait S + + implicit def tc[M](implicit M0: TC[M]): TC[S] = null + def breakage[F: TC] = 0 + breakage // correct: diverging implicit expansion +}
\ No newline at end of file diff --git a/test/files/neg/t5318c.check b/test/files/neg/t5318c.check new file mode 100644 index 0000000000..594539be69 --- /dev/null +++ b/test/files/neg/t5318c.check @@ -0,0 +1,5 @@ +t5318c.scala:13: error: diverging implicit expansion for type CompilerHang.this.TC[F] +starting with method tc in class CompilerHang + breakage // type checker doesn't terminate, should report inference failure + ^ +one error found diff --git a/test/files/neg/t5318c.scala b/test/files/neg/t5318c.scala new file mode 100644 index 0000000000..477a9874ad --- /dev/null +++ b/test/files/neg/t5318c.scala @@ -0,0 +1,14 @@ +class CompilerHang { + trait TC[M[_]] + trait S[A] + + class C[M[_]] { + type TCM = TC[M] + } + + // A nefarious implicit, to motivate the removal of `&& sym.owner.isTerm` from + // `isFreeTypeParamNoSkolem`. + implicit def tc[x[_], CC[x[_]] <: C[x]](implicit M0: CC[x]#TCM): CC[x]#TCM = null + def breakage[F[_] : TC] = 0 + breakage // type checker doesn't terminate, should report inference failure +} |