Skip to content

Commit 95145a2

Browse files
committed
Avoid cyclic error in checkNoModuleClash
1 parent c01d596 commit 95145a2

File tree

3 files changed

+15
-3
lines changed

3 files changed

+15
-3
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -886,11 +886,11 @@ trait Checking {
886886
*/
887887
def checkNoModuleClash(sym: Symbol)(using Context): Unit =
888888
if sym.effectiveOwner.is(Package)
889-
&& sym.owner.info.member(sym.name.moduleClassName).symbol.isAbsent()
889+
&& sym.effectiveOwner.info.member(sym.name.moduleClassName).symbol.isAbsent()
890890
then
891-
val conflicting = sym.owner.info.member(sym.name.toTypeName).symbol
891+
val conflicting = sym.effectiveOwner.info.member(sym.name.toTypeName).symbol
892892
if conflicting.exists then
893-
report.error(AlreadyDefined(sym.name, sym.owner, conflicting), sym.srcPos)
893+
report.error(AlreadyDefined(sym.name, sym.effectiveOwner, conflicting), sym.srcPos)
894894

895895
/** Check that `tp` is a class type.
896896
* Also, if `traitReq` is true, check that `tp` is a trait.

tests/pos/i14152.min.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
val aa1 = {
2+
object O1 extends AnyRef
3+
Array(O1)
4+
}
5+
6+
val aa2: Array[_ <: AnyRef] = aa1

tests/pos/i14152.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
val aa1 = {
2+
object O1 extends AnyRef
3+
Array(Array(O1))
4+
}
5+
6+
val aa2: Array[_ <: Array[_ <: AnyRef]] = aa1

0 commit comments

Comments
 (0)