File tree Expand file tree Collapse file tree 4 files changed +36
-0
lines changed
compiler/src/dotty/tools/dotc/typer Expand file tree Collapse file tree 4 files changed +36
-0
lines changed Original file line number Diff line number Diff line change @@ -362,6 +362,8 @@ object RefChecks {
362362 s " $clazz inherits conflicting members: \n "
363363 + infoStringWithLocation(other) + " and\n " + infoStringWithLocation(member)
364364 + " \n (Note: this can be resolved by declaring an override in " + clazz + " .)" )
365+ else if member.is(Exported ) then
366+ overrideError(" cannot override since it comes from an export" )
365367 else
366368 overrideError(" needs `override` modifier" )
367369 else if (other.is(AbsOverride ) && other.isIncompleteIn(clazz) && ! member.is(AbsOverride ))
Original file line number Diff line number Diff line change 1+ object A :
2+ def f : String = " "
3+
4+ trait B :
5+ def f : String = " abc"
6+
7+ trait B2 extends B :
8+ override def f : String = " abc"
9+
10+ object D extends B :
11+ object b extends B
12+ export b ._ // ok
13+
14+ object D1 extends B :
15+ object b extends B
16+ export b .f // error
17+
18+ object D2 extends B :
19+ object b2 extends B2
20+ export b2 .f // error
Original file line number Diff line number Diff line change 1+ -- Error: tests/neg/exports2.scala:8:11 --------------------------------------------------------------------------------
2+ 8 | export A._ // error
3+ | ^
4+ | error overriding method f in trait B of type => String;
5+ | method f of type => String cannot override since it comes from an export
Original file line number Diff line number Diff line change 1+ object A :
2+ def f : String = " "
3+
4+ trait B :
5+ def f : String = " abc"
6+
7+ object C extends B :
8+ export A ._ // error
9+
You can’t perform that action at this time.
0 commit comments