Skip to content

Instantly share code, notes, and snippets.

@adamretter
Created March 10, 2014 19:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adamretter/9472116 to your computer and use it in GitHub Desktop.
Save adamretter/9472116 to your computer and use it in GitHub Desktop.
object Blah extends App {
trait ArgProvider {
}
case class ColumnReference(value: String) extends ArgProvider
abstract class Rule(name: String, val argProviders: ArgProvider*)
case class InRule(inValue: ArgProvider) extends Rule("in", inValue) {
def valid(): Boolean = {
/*
When compiled and ran with Scala 2.10.1
this causes a ClassCastException...
BUT NOT on Scala 2.10.0
*/
println(inValue.getClass)
true
}
}
val rule = InRule(ColumnReference("Column1"))
rule.valid()
}
@S11001001
Copy link

Slightly smaller repro

package test

object Blah /*extends App*/ {

  trait ArgProvider {
  }

  abstract class Rule(val argProviders: ArgProvider*)

  case class InRule(inValue: ArgProvider) extends Rule(inValue) {

    def valid(): Boolean = {
      /*
       When compiled and ran with Scala 2.10.1
       this causes a ClassCastException...
       BUT NOT on Scala 2.10.0
       */
      println(inValue.getClass)
      true
    }
  }

  val rule = InRule(new ArgProvider {})
  rule.valid()
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment