Skip to content

Commit 517ba8c

Browse files
Merge pull request #3787 from dotty-staging/fix-#3745
Fix #3745: check for double imports
2 parents 6c17eb5 + 74b3ff5 commit 517ba8c

File tree

4 files changed

+7
-0
lines changed

4 files changed

+7
-0
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,10 +278,14 @@ class PostTyper extends MacroTransform with IdentityDenotTransformer { thisPhase
278278
)
279279
case Import(expr, selectors) =>
280280
val exprTpe = expr.tpe
281+
val seen = mutable.Set.empty[Name]
281282
def checkIdent(ident: untpd.Ident): Unit = {
282283
val name = ident.name.asTermName
283284
if (name != nme.WILDCARD && !exprTpe.member(name).exists && !exprTpe.member(name.toTypeName).exists)
284285
ctx.error(NotAMember(exprTpe, name, "value"), ident.pos)
286+
if (seen(ident.name))
287+
ctx.error(s"${ident.show} is renamed twice", ident.pos)
288+
seen += ident.name
285289
}
286290
selectors.foreach {
287291
case ident: untpd.Ident => checkIdent(ident)

tests/neg/i3745a.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import scala.collection.{ Seq, Seq } // error: Seq is renamed twice

tests/neg/i3745b.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import scala.collection.{ Seq, Seq => _ } // error: Seq is renamed twice

tests/neg/i3745c.scala

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import scala.collection.{ Seq => A, Seq => B } // error: Seq is renamed twice

0 commit comments

Comments
 (0)