|
Scala example source code file (t2316.scala)
The Scala t2316.scala source codeobject test { case class T1(val source: String) object T1 { implicit def T1FromT2(implicit t2: T2): T1 = T1("implicit def T1FromT2") implicit def T1FromT3(implicit t3: T3): T1 = T1("implicit def T1FromT3") } trait T2 { } object T2 { implicit val t2: T2 = new T2 {} } trait T3 def requireT1(implicit t1: T1) = t1 { val t1 = requireT1 assert(t1.source == "implicit def T1FromT2") } { implicit def t3: T3 = new T3 {} val t1 = requireT1 assert(t1.source == "implicit def T1FromT2") // Expected a compile error here, but because T1.T1FromT2(T2.t2) was cached as a non-local implicit // expression for type T1, this is not checked! // // (fragment of implicit-cache-error2.scala):26: error: ambiguous implicit values: // both method T1FromT3 in object T1 of type (implicit t3: this.T3)this.T1 // and method T1FromT2 in object T1 of type (implicit t2: this.T2)this.T1 // match expected type this.T1 // val t1 = requireT1 // ^ // one error found } } Other Scala examples (source code examples)Here is a short list of links related to this Scala t2316.scala source code file: |
... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.