diff options
author | odersky <odersky@gmail.com> | 2014-12-16 17:24:02 +0100 |
---|---|---|
committer | odersky <odersky@gmail.com> | 2014-12-16 17:24:02 +0100 |
commit | ba74188596760a0826bc6921358eac22f99265d8 (patch) | |
tree | 7cafb3e295768e3e41572dcb505d3deb9571bfcf /tests/pending/pos/t7785.scala | |
parent | 63e1bc95d4f72331fabf2fd838bb4e8d5b94ad67 (diff) | |
parent | 42851ed2675015d42bb341b82a09bd0bef4a8ce4 (diff) | |
download | dotty-ba74188596760a0826bc6921358eac22f99265d8.tar.gz dotty-ba74188596760a0826bc6921358eac22f99265d8.tar.bz2 dotty-ba74188596760a0826bc6921358eac22f99265d8.zip |
Merge pull request #294 from samuelgruetter/tests-rewrite-2
Run rewrite tool on tests (2)
Diffstat (limited to 'tests/pending/pos/t7785.scala')
-rw-r--r-- | tests/pending/pos/t7785.scala | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/pending/pos/t7785.scala b/tests/pending/pos/t7785.scala new file mode 100644 index 000000000..1de693d13 --- /dev/null +++ b/tests/pending/pos/t7785.scala @@ -0,0 +1,34 @@ +import scala.language._ + +trait R[+Repr] + +trait TraversableOps { + implicit val R: R[Nothing] = ??? + + // Removing the implicit parameter in both fixes the crash + // removing it into one only gives a valid compiler error. + trait OpsDup1[Repr] { + def force(implicit bf: R[Repr]): Any + } + + trait Ops[Repr] extends OpsDup1[Repr] { + def force(implicit bf: R[Repr], dummy: DummyImplicit): Any + } + + implicit def ct2ops[T, C[+X]](t: C[T]): + Ops[C[T]] + + def force[T](t: Option[T]) = + // ct2ops(t).force + t.force //Fails compilation on 2.10.2. + + + /* To get a closer look at the crash: + :power + val foo = typeOf[C].member(TermName("foo")) + val pt = analyzer.HasMember(TermName("force")) + val instantiated = foo.info.finalResultType.instantiateTypeParams(foo.typeParams, foo.typeParams.map(TypeVar(_))) + instantiated <:< pt + */ + def foo[T, C[+X]]: Ops[C[T]] +} |