Skip to content

Commit cf4f773

Browse files
committed
Fiddling with widenening
Fixing two failures in stdlib having to do with widening. In both cases, a widenIfUnstable was required. One was widening too much, the other too little.
1 parent 190ee9d commit cf4f773

File tree

4 files changed

+6
-10
lines changed

4 files changed

+6
-10
lines changed

compiler/src/dotty/tools/dotc/transform/ElimByName.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ class ElimByName extends MiniPhaseTransform with InfoTransformer { thisTransform
7171

7272
def transformArg(arg: Tree, formal: Type): Tree = formal.dealias match {
7373
case formalExpr: ExprType =>
74-
val argType = arg.tpe.widen
74+
val argType = arg.tpe.widenIfUnstable
7575
val argFun = arg match {
7676
case Apply(Select(qual, nme.apply), Nil)
7777
if qual.tpe.derivesFrom(defn.FunctionClass(0)) && isPureExpr(qual) =>

compiler/src/dotty/tools/dotc/transform/LiftTry.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class LiftTry extends MiniPhase with IdentityDenotTransformer { thisTransform =>
5757
ctx.debuglog(i"lifting tree at ${tree.pos}, current owner = ${ctx.owner}")
5858
val fn = ctx.newSymbol(
5959
ctx.owner, ctx.freshName("liftedTree").toTermName, Synthetic | Method,
60-
MethodType(Nil, tree.tpe), coord = tree.pos)
60+
MethodType(Nil, tree.tpe.widenIfUnstable), coord = tree.pos)
6161
tree.changeOwnerAfter(ctx.owner, fn, thisTransform)
6262
Block(DefDef(fn, tree) :: Nil, ref(fn).appliedToNone)
6363
}

compiler/test/dotc/scala-collections.blacklist

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626

2727

28-
## Ycheck failures
28+
## Ycheck failures, presumably linked to TailCalls
2929

3030
../scala-scala/src/library/scala/collection/parallel/ParIterableLike.scala
3131
# -Ycheck:classOf fails
@@ -34,13 +34,9 @@
3434
# -Ycheck:classOf fails
3535

3636
../scala-scala/src/library/scala/util/control/TailCalls.scala
37-
# -Ycheck:classOf failure
37+
# -Ycheck:classOf fails
3838

39-
../scala-scala/src/library/scala/concurrent/impl/ExecutionContextImpl.scala
40-
# -Ycheck:arrayConstructors failure
4139

42-
../scala-scala/src/library/scala/concurrent/package.scala
43-
# -Ycheck:arrayConstructors failure
4440

4541
## Errors having to do with unavailable APIs or language features:
4642

compiler/test/dotc/scala-collections.whitelist

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -453,7 +453,7 @@
453453
../scala-scala/src/library/scala/collection/script/Message.scala
454454
../scala-scala/src/library/scala/collection/script/Scriptable.scala
455455

456-
#../scala-scala/src/library/scala/concurrent/package.scala
456+
../scala-scala/src/library/scala/concurrent/package.scala
457457
../scala-scala/src/library/scala/concurrent/Future.scala
458458
../scala-scala/src/library/scala/concurrent/Awaitable.scala
459459
../scala-scala/src/library/scala/concurrent/BatchingExecutor.scala
@@ -476,7 +476,7 @@
476476
../scala-scala/src/library/scala/concurrent/TaskRunner.scala
477477
../scala-scala/src/library/scala/concurrent/ThreadPoolRunner.scala
478478
../scala-scala/src/library/scala/concurrent/SyncChannel.scala
479-
#../scala-scala/src/library/scala/concurrent/impl/ExecutionContextImpl.scala
479+
../scala-scala/src/library/scala/concurrent/impl/ExecutionContextImpl.scala
480480

481481
../scala-scala/src/library/scala/collection/parallel/package.scala
482482
../scala-scala/src/library/scala/collection/parallel/ParIterable.scala

0 commit comments

Comments
 (0)