Skip to content

Instantly share code, notes, and snippets.

@tstone
Created March 24, 2014 18:36
Show Gist options
  • Save tstone/9746335 to your computer and use it in GitHub Desktop.
Save tstone/9746335 to your computer and use it in GitHub Desktop.
Experimenting with how Scala handles multiple implicit conversions in scope when those conversions apply to child types.
scala> class A { val prop = "a" }
scala> class B extends A { override val prop = "b" }
scala> class C extends B
scala> implicit class Foo(a: A) { def value = a.prop }
scala> implicit class Bar(b: B) { def value = b.prop }
scala> val c = new C
scala> c.value
res0: String = b
scala> class A { val prop = "a" }
scala> class B extends A { override val prop = "b" }
scala> class C extends B
scala> implicit class Foo(a: A) { def value = a.prop }
scala> implicit class Bar(b: B) { def value = b.prop }
scala> val c = new C
scala> c.value
res0: String = b
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment