Skip to content

Instantly share code, notes, and snippets.

@hubertp
hubertp / Test case
Created August 2, 2012 14:34
Long signatures bug
trait Foo1 {
trait Foo2 {
trait Foo3 {
trait Foo4 {
trait Foo5 {
trait Foo6 {
trait Foo2 {
trait Foo3 {
trait Foo4 {
@hubertp
hubertp / gist:3189196
Created July 27, 2012 17:07
compiler crash with genASM
quick.comp:
[scalacfork] Compiling 144 files to /home/hubert/tmp/repos/scala-dev/build/quick/classes/compiler
[scalacfork] /home/hubert/tmp/repos/scala-dev/src/compiler/scala/tools/nsc/doc/html/page/diagram/DotDiagramGenerator.scala:336: warning: This catches all Throwables. If this is really intended, use `case exc : Throwable` to clear this warning.
[scalacfork] case exc =>
[scalacfork] ^
[scalacfork] error:
[scalacfork] while compiling: /home/hubert/tmp/repos/scala-dev/src/compiler/scala/tools/util/VerifyClass.scala
[scalacfork] during phase: jvm
[scalacfork] library version: version 2.11.0-20120725-151122-fe513d1f14
[scalacfork] compiler version: version 2.11.0-20120725-151122-fe513d1f14
@hubertp
hubertp / gist:1979162
Created March 5, 2012 16:32
SO bug in inferExprAlternative
trait Base[T]
trait Foo[T] extends Base[T] {
}
object Impl {
implicit def f[Z](a: Foo[Z]): Result = null
implicit def f[Z](a: Base[Z]): Result = null
@hubertp
hubertp / gist:1959320
Created March 2, 2012 15:59
experimenting with manifests
abstract class Foo {
type T
implicit val m: Manifest[T]
def v: T
def prev: Foo
}
case class A(a: Int, prev: Foo) extends Foo {
type T = Int
implicit val m = manifest[Int]
@hubertp
hubertp / gist:1959255
Created March 2, 2012 15:46
code that triggers inferExprAlternative
trait Base[T]
trait Foo[T] extends Base[T] {
}
object Impl {
implicit def f[Z](a: Foo[Z]): Result = null
implicit def f[Z](a: Base[Z]): Result = null
@hubertp
hubertp / gist:1760697
Created February 7, 2012 16:50
Inliner bug
trait Types {
trait Sth
case class A(a: Int) extends Sth {
println("New instance of A!" + a)
}
object Settings {
var debug: Boolean = true
@hubertp
hubertp / gist:948063
Created April 29, 2011 08:49
Implicit ambiguity example
object ImplicitConvAmbiguity2 {
class N[T]
class NE[T] extends N[T]
class NN[T] extends N[T]
class NQ[T] extends N[T]
class NZ[T] extends N[T]
class AA[A]
class BB[A]
@hubertp
hubertp / deprecate2_8_1
Created January 4, 2011 15:51
deprecated 2.8.1
library:
src/library/scala/package.scala: @deprecated("Use Tuple1(x) to create a 1-tuple.")
src/library/scala/package.scala- def Tuple[A1](x1: A1) = Tuple1(x1)
src/library/scala/package.scala: @deprecated("Use ((x1, x2, ...)) syntax to create Tuples")
src/library/scala/package.scala- def Tuple[A1, A2](x1: A1, x2: A2) = Tuple2(x1, x2)
src/library/scala/package.scala: @deprecated("Use ((x1, x2, ...)) syntax to create Tuples")
src/library/scala/package.scala- def Tuple[A1, A2, A3](x1: A1, x2: A2, x3: A3) = Tuple3(x1, x2, x3)
src/library/scala/package.scala: @deprecated("Use ((x1, x2, ...)) syntax to create Tuples")
src/library/scala/package.scala- def Tuple[A1, A2, A3, A4](x1: A1, x2: A2, x3: A3, x4: A4) = Tuple4(x1, x2, x3, x4)
src/library/scala/package.scala: @deprecated("Use ((x1, x2, ...)) syntax to create Tuples")