Skip to content

Commit fc29643

Browse files
Merge pull request #8393 from dotty-staging/i8368
Fix #8368: Don't generate forwarders for excluded exports
2 parents 63343d2 + 186a766 commit fc29643

File tree

5 files changed

+25
-7
lines changed

5 files changed

+25
-7
lines changed

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1135,7 +1135,8 @@ class Namer { typer: Typer =>
11351135
if sel.isWildcard then
11361136
addWildcardForwarders(seen, sel.span)
11371137
else
1138-
addForwardersNamed(sel.name, sel.rename, sel.span)
1138+
if sel.rename != nme.WILDCARD then
1139+
addForwardersNamed(sel.name, sel.rename, sel.span)
11391140
addForwarders(sels1, sel.name :: seen)
11401141
case _ =>
11411142

tests/neg/exports.check

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,13 @@
77
| ^^^^^^^^^^^^^^
88
| no eligible member scanAll at this.scanUnit
99
| this.scanUnit.scanAll cannot be exported because it is not accessible
10-
-- Error: tests/neg/exports.scala:23:27 --------------------------------------------------------------------------------
11-
23 | export printUnit.{stat => _, _} // error: double definition // error: double definition
12-
| ^^^^^^^^^
13-
| no eligible member stat at this.printUnit
1410
-- Error: tests/neg/exports.scala:25:21 --------------------------------------------------------------------------------
1511
25 | export printUnit.bitmap // error: no eligible member
1612
| ^
1713
| non-private method bitmap in class Copier refers to private value printUnit
1814
| in its type signature => Copier.this.printUnit.bitmap.type
1915
-- [E120] Duplicate Symbol Error: tests/neg/exports.scala:23:33 --------------------------------------------------------
20-
23 | export printUnit.{stat => _, _} // error: double definition // error: double definition
16+
23 | export printUnit.{stat => _, _} // error: double definition
2117
| ^
2218
| Double definition:
2319
| def status: => List[String] in class Copier at line 28 and

tests/neg/exports.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
export scanUnit.scanIt // error: no eligible member
2222
export scanUnit.{scanAll => foo} // error: no eligible member
23-
export printUnit.{stat => _, _} // error: double definition // error: double definition
23+
export printUnit.{stat => _, _} // error: double definition
2424
export scanUnit._ // error: double definition
2525
export printUnit.bitmap // error: no eligible member
2626
export printUnit.status // error: double definition

tests/neg/i8368.scala

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
trait Foo {
2+
def a = 1
3+
def b = 1
4+
def c = 1
5+
}
6+
7+
class Bar(foo: Foo) {
8+
export foo.{a => _, b => _, _}
9+
val x1 = a // error
10+
val x2 = b // error
11+
}

tests/pos/i8368.scala

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
trait Foo {
2+
def a = 1
3+
def b = 1
4+
def c = 1
5+
}
6+
7+
class Bar(foo: Foo) {
8+
export foo.{a => _, b => _, _}
9+
val x1 = c
10+
}

0 commit comments

Comments
 (0)