Skip to content

Commit c9eba1e

Browse files
committed
Merge pull request #920 from dotty-staging/stdlib-TraversableOnce
Stdlib traversable once
2 parents 8529f59 + d2ed587 commit c9eba1e

File tree

4 files changed

+10
-3
lines changed

4 files changed

+10
-3
lines changed

src/dotty/tools/dotc/core/Definitions.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ class Definitions {
192192
ScalaPackageClass, tpnme.Null, AbstractFinal, List(ObjectClass.typeRef))
193193

194194
lazy val ScalaPredefModule = ctx.requiredModule("scala.Predef")
195+
196+
lazy val Predef_conforms = ctx.requiredMethod(ScalaPredefModule.moduleClass.asClass, "$conforms")
197+
195198
lazy val ScalaRuntimeModule = ctx.requiredModule("scala.runtime.ScalaRunTime")
196199
lazy val ScalaRuntimeClass = ScalaRuntimeModule.moduleClass.asClass
197200

@@ -210,7 +213,6 @@ class Definitions {
210213
def newRefArrayMethod = ctx.requiredMethod(DottyArraysModule.moduleClass.asClass, "newRefArray")
211214

212215
lazy val NilModule = ctx.requiredModule("scala.collection.immutable.Nil")
213-
lazy val PredefConformsClass = ctx.requiredClass("scala.Predef." + tpnme.Conforms)
214216

215217
// lazy val FunctionClass: ClassSymbol = ctx.requiredClass("scala.Function")
216218
lazy val SingletonClass: ClassSymbol =

src/dotty/tools/dotc/typer/Implicits.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,9 @@ object Implicits {
6565
case tpw =>
6666
//if (ctx.typer.isApplicable(tp, argType :: Nil, resultType))
6767
// println(i"??? $tp is applicable to $this / typeSymbol = ${tpw.typeSymbol}")
68-
!tpw.derivesFrom(defn.FunctionClass(1)) || tpw.isRef(defn.PredefConformsClass)
68+
!tpw.derivesFrom(defn.FunctionClass(1)) ||
69+
ref.symbol == defn.Predef_conforms //
70+
// as an implicit conversion, Predef.$conforms is a no-op, so exclude it
6971
}
7072

7173
def discardForValueType(tpw: Type): Boolean = tpw match {

test/dotc/scala-collections.whitelist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@
103103
./scala-scala/src/library/scala/collection/LinearSeqOptimized.scala
104104

105105
# https://github.com/lampepfl/dotty/issues/914
106-
#./scala-scala/src/library/scala/collection/TraversableOnce.scala
106+
./scala-scala/src/library/scala/collection/TraversableOnce.scala
107107
./scala-scala/src/library/scala/collection/generic/Growable.scala
108108
./scala-scala/src/library/scala/collection/generic/TraversableForwarder.scala
109109
./scala-scala/src/library/scala/collection/immutable/BitSet.scala

tests/new/conforms.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
object Test {
2+
def f[A, B](x: A)(implicit e: <:<[A, B]): B = x
3+
}

0 commit comments

Comments
 (0)