summaryrefslogtreecommitdiff
path: root/test/files/neg/no-implicit-to-anyref.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2014-01-27 10:29:28 +0100
committerJason Zaugg <jzaugg@gmail.com>2014-01-27 10:44:48 +0100
commit327eea839e97e1d7cac92aa9cd61e3338d12cb12 (patch)
tree27c96fc40658a947216b61fab6b6da4956c6cdbd /test/files/neg/no-implicit-to-anyref.scala
parenta5b0fc49e517d1c63d22f9909ac9bed0552ed466 (diff)
downloadscala-327eea839e97e1d7cac92aa9cd61e3338d12cb12.tar.gz
scala-327eea839e97e1d7cac92aa9cd61e3338d12cb12.tar.bz2
scala-327eea839e97e1d7cac92aa9cd61e3338d12cb12.zip
Prohibit views targeting AnyVal
Library changes in Scala 2.10 mean that we are left with the unfortunate situation of admitting: scala> "": AnyVal res0: AnyVal = We already have explicit checks in place to prevent views targeting `AnyRef`. This commit balances this out by prohibiting `AnyVal`, as well. The enclosed test shows that this case is now prevented. If multiple implicits views are applicable, the ambiguity error is still raised; these check comes right at the end. Maybe that ought to be changed, but I don't think it matters too much. I've also disabled this prohibition under -Xsource:2.10.
Diffstat (limited to 'test/files/neg/no-implicit-to-anyref.scala')
-rw-r--r--test/files/neg/no-implicit-to-anyref.scala29
1 files changed, 0 insertions, 29 deletions
diff --git a/test/files/neg/no-implicit-to-anyref.scala b/test/files/neg/no-implicit-to-anyref.scala
deleted file mode 100644
index 3e3d373e38..0000000000
--- a/test/files/neg/no-implicit-to-anyref.scala
+++ /dev/null
@@ -1,29 +0,0 @@
-// Checks that the state of standard implicits in Predef._ and scala._
-// doesn't allow us to unambiguously and implicitly convert AnyVal
-// and subtypes to AnyRef.
-//
-// In the days before value classes, this was precariously held be
-// the competing implicits Any => StringAdd and Any => StringFormat.
-// Since then, these have both become value classes, but seeing as
-// this happened simultaneously, we're still okay.
-object Test {
- locally {
- 1: AnyRef
- }
-
- locally {
- // before this test case was added and ContextErrors was tweaked, this
- // emitted: "Note that Any extends Any, not AnyRef."
- (null: Any): AnyRef
- }
-
- locally {
- (0: AnyVal): AnyRef
- }
-
- class AV(val a: Int) extends AnyVal
-
- locally {
- new AV(0): AnyRef
- }
-}