diff options
author | Paul Phillips <paulp@improving.org> | 2012-01-02 06:41:31 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-01-02 14:37:36 -0800 |
commit | 451e1dc2da16c1bb5a7a59488865df9294eeaf3e (patch) | |
tree | dcbae11619389a16115d005ab2fc9bfdf5c4ba8d /test/files/neg/logImplicits.check | |
parent | beb875187914b12b1b9dbb5621447067e2926c7c (diff) | |
download | scala-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.check | 19 |
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 |