Skip to content

Commit c101ce9

Browse files
authored
Merge pull request #2534 from dotty-staging/fix-#2533
Fix #2533: Fold refinement with error info to error
2 parents a4f0d35 + 58379db commit c101ce9

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

compiler/src/dotty/tools/dotc/typer/TypeAssigner.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,8 @@ trait TypeAssigner {
465465
def addRefinement(parent: Type, refinement: Tree): Type = {
466466
val rsym = refinement.symbol
467467
val rinfo = if (rsym is Accessor) rsym.info.resultType else rsym.info
468-
RefinedType(parent, rsym.name, rinfo)
468+
if (rinfo.isError) rinfo
469+
else RefinedType(parent, rsym.name, rinfo)
469470
}
470471
val refined = (parent.tpe /: refinements)(addRefinement)
471472
tree.withType(RecType.closeOver(rt => refined.substThis(refineCls, RecThis(rt))))

tests/neg/i2533.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
object Foo {
2+
def test(f: { type A = A }): Int = ??? // error
3+
}

0 commit comments

Comments
 (0)