Skip to content

Commit eff1edb

Browse files
committed
Add outer param when java inner class instantiated
1 parent 6947b0f commit eff1edb

File tree

3 files changed

+10
-1
lines changed

3 files changed

+10
-1
lines changed

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ object ExplicitOuter {
247247

248248
/** Class constructor takes an outer argument. Can be called only after phase ExplicitOuter. */
249249
def hasOuterParam(cls: ClassSymbol)(using Context): Boolean =
250-
!cls.is(Trait) && needsOuterIfReferenced(cls) && outerAccessor(cls).exists
250+
!cls.is(Trait) && needsOuterIfReferenced(cls)
251251

252252
/** Tree references an outer class of `cls` which is not a static owner.
253253
*/

tests/run/10838/A.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
public class A {
2+
public class B {}
3+
}

tests/run/10838/Test.scala

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
object Test {
2+
def main(args: Array[String]): Unit = {
3+
val a = new A
4+
new a.B
5+
}
6+
}

0 commit comments

Comments
 (0)