summaryrefslogtreecommitdiff
path: root/test/files/neg/logImplicits.check
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-01-02 06:41:31 -0800
committerPaul Phillips <paulp@improving.org>2012-01-02 14:37:36 -0800
commit451e1dc2da16c1bb5a7a59488865df9294eeaf3e (patch)
treedcbae11619389a16115d005ab2fc9bfdf5c4ba8d /test/files/neg/logImplicits.check
parentbeb875187914b12b1b9dbb5621447067e2926c7c (diff)
downloadscala-451e1dc2da16c1bb5a7a59488865df9294eeaf3e.tar.gz
scala-451e1dc2da16c1bb5a7a59488865df9294eeaf3e.tar.bz2
scala-451e1dc2da16c1bb5a7a59488865df9294eeaf3e.zip
Added -Xlog-implicit-conversions.
New command line option prints a message whenever the compiler inserts an implicit conversion. Implicit parameters are not under consideration here, since the primary motivation is to make it easy to inspect your code for unintentional conversions, since they can have dramatic performance implications. class A { def f(xs: Array[Byte]) = xs.size def g(xs: Array[Byte]) = xs.length } % scalac -Xlog-implicit-conversions logImplicits.scala logImplicits.scala:2: applied implicit conversion from xs.type to ?{val size: ?} = implicit def byteArrayOps(xs: Array[Byte]): scala.collection.mutable.ArrayOps[Byte] def f(xs: Array[Byte]) = xs.size ^
Diffstat (limited to 'test/files/neg/logImplicits.check')
-rw-r--r--test/files/neg/logImplicits.check19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/files/neg/logImplicits.check b/test/files/neg/logImplicits.check
new file mode 100644
index 0000000000..d98422dacb
--- /dev/null
+++ b/test/files/neg/logImplicits.check
@@ -0,0 +1,19 @@
+logImplicits.scala:2: applied implicit conversion from xs.type to ?{val size: ?} = implicit def byteArrayOps(xs: Array[Byte]): scala.collection.mutable.ArrayOps[Byte]
+ def f(xs: Array[Byte]) = xs.size
+ ^
+logImplicits.scala:7: applied implicit conversion from String("abc") to ?{val map: ?} = implicit def augmentString(x: String): scala.collection.immutable.StringOps
+ def f = "abc" map (_ + 1)
+ ^
+logImplicits.scala:15: inferred view from String("abc") to Int = C.this.convert:(p: String("abc"))Int
+ math.max(122, x: Int)
+ ^
+logImplicits.scala:19: applied implicit conversion from Int(1) to ?{val ->: ?} = implicit def any2ArrowAssoc[A](x: A): ArrowAssoc[A]
+ def f = (1 -> 2) + "c"
+ ^
+logImplicits.scala:19: applied implicit conversion from (Int, Int) to ?{val +: ?} = implicit def any2stringadd(x: Any): scala.runtime.StringAdd
+ def f = (1 -> 2) + "c"
+ ^
+logImplicits.scala:22: error: class Un needs to be abstract, since method unimplemented is not defined
+class Un {
+ ^
+one error found