summaryrefslogtreecommitdiff
path: root/test/files/run/t2316_run.scala
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2010-09-28 00:51:25 +0000
committerPaul Phillips <paulp@improving.org>2010-09-28 00:51:25 +0000
commit9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f (patch)
tree857d48a844aa0479863f79c2a991984ac6a0104f /test/files/run/t2316_run.scala
parenta56c33b6a470939a1396015972f09e19dc493245 (diff)
downloadscala-9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f.tar.gz
scala-9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f.tar.bz2
scala-9c0e58c48da4cdbae7c96ef45fc15cd7aff4301f.zip
Cleaning up the contents of test.
including "CheckEither", written against scalacheck 1.2 in the year 471 AD. Removed all the duplicates I could find, mostly between pending and files. Renamed a bunch of tests so they wouldn't look like likely duplicates next time around. Nominated somebody else to do this once in a while. No review.
Diffstat (limited to 'test/files/run/t2316_run.scala')
-rw-r--r--test/files/run/t2316_run.scala32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/files/run/t2316_run.scala b/test/files/run/t2316_run.scala
new file mode 100644
index 0000000000..a3d5bf890b
--- /dev/null
+++ b/test/files/run/t2316_run.scala
@@ -0,0 +1,32 @@
+case class T1(source: String)
+
+object T1 {
+ implicit def T1FromT2(implicit t2: T2) = new T1(t2.source)
+}
+
+case class T2(source: String)
+
+object A {
+ def requireT1(implicit t1: T1) = t1
+
+ object B1 {
+ implicit val t2_b1 = new T2("from B1")
+ requireT1
+ }
+
+ object B2 {
+ def t1 = {
+ implicit val t2_b2 = new T2("from B2")
+ // Implicits.cacheResult returns T1.T1FromT2(t2_b1) here, which is bogus. Even though T1.T1FromT2 was found
+ // outside of the scope of A.B1, this implicit expression should _not_ be cached, as it includes the bound
+ // variable t2_b1 from this scope.
+ requireT1
+ }
+ }
+}
+
+object Test {
+ def main(args: Array[String]) {
+ assert(A.B2.t1.source == "from B2")
+ }
+} \ No newline at end of file