Skip to content

Commit d388884

Browse files
authored
Merge pull request scala#5269 from lrytz/t9849
SI-9849 set privateWithin on default getters
2 parents 09d689b + d33f299 commit d388884

File tree

3 files changed

+24
-1
lines changed

3 files changed

+24
-1
lines changed

src/compiler/scala/tools/nsc/typechecker/Namers.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1346,7 +1346,7 @@ trait Namers extends MethodSynthesis {
13461346
val defRhs = rvparam.rhs
13471347

13481348
val defaultTree = atPos(vparam.pos.focus) {
1349-
DefDef(Modifiers(paramFlagsToDefaultGetter(meth.flags)) | oflag, name, defTparams, defVparamss, defTpt, defRhs)
1349+
DefDef(Modifiers(paramFlagsToDefaultGetter(meth.flags), ddef.mods.privateWithin) | oflag, name, defTparams, defVparamss, defTpt, defRhs)
13501350
}
13511351
if (!isConstr)
13521352
methOwner.resetFlag(INTERFACE) // there's a concrete member now

test/files/neg/t9849.check

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
t9849.scala:14: error: method h in object O cannot be accessed in object p.O
2+
O.h()
3+
^
4+
t9849.scala:15: error: method h$default$1 in object O cannot be accessed in object p.O
5+
O.h$default$1
6+
^
7+
two errors found

test/files/neg/t9849.scala

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package p
2+
3+
object O {
4+
protected[p] def f(x: Int = 1) = x
5+
private[p] def g(x: Int = 1) = x
6+
private def h(x: Int = 1) = x
7+
}
8+
9+
object Test {
10+
O.f()
11+
O.f$default$1
12+
O.g()
13+
O.g$default$1
14+
O.h()
15+
O.h$default$1
16+
}

0 commit comments

Comments
 (0)