Skip to content

Commit

Permalink
Revert "SI-6601 Publicise derived value contstructor after pickler"
Browse files Browse the repository at this point in the history
This reverts commit b07228a.

The remedy was far worse than the disease:

    % cat sandbox/test.scala
    class V private (val a: Any) extends AnyVal

    % RUNNER=scalac scala-hash b07228a sandbox/test.scala
    [info] b07228a => /Users/jason/usr/scala-v2.10.0-256-gb07228a

    % scala-hash b07228a
    [info] b07228a => /Users/jason/usr/scala-v2.10.0-256-gb07228a
    Welcome to Scala version 2.10.1-20130116-230935-b07228aebe (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_27).
    Type in expressions to have them evaluated.
    Type :help for more information.

    scala> def foo(v: V) = v.a == v.a
    exception when typing v.a().==(v.a())/class scala.reflect.internal.Trees$Apply
    constructor V in class V cannot be accessed in object $iw in file <console>
    scala.reflect.internal.Types$TypeError: constructor V in class V cannot be accessed in object $iw
  • Loading branch information
retronym committed Jan 26, 2013
1 parent 2fa859e commit 172f3f6
Show file tree
Hide file tree
Showing 5 changed files with 1 addition and 10 deletions.
Expand Up @@ -144,6 +144,7 @@ abstract class ExtensionMethods extends Transform with TypingTransformers {
wrap over other value classes anyway.
checkNonCyclic(currentOwner.pos, Set(), currentOwner) */
extensionDefs(currentOwner.companionModule) = new mutable.ListBuffer[Tree]
currentOwner.primaryConstructor.makeNotPrivate(NoSymbol)
super.transform(tree)
} else if (currentOwner.isStaticOwner) {
super.transform(tree)
Expand Down
2 changes: 0 additions & 2 deletions src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
Expand Up @@ -1686,8 +1686,6 @@ abstract class RefChecks extends InfoTransform with scala.reflect.internal.trans
val bridges = addVarargBridges(currentOwner)
checkAllOverrides(currentOwner)
checkAnyValSubclass(currentOwner)
if (currentOwner.isDerivedValueClass)
currentOwner.primaryConstructor makeNotPrivate NoSymbol // SI-6601, must be done *after* pickler!
if (bridges.nonEmpty) deriveTemplate(tree)(_ ::: bridges) else tree

case dc@TypeTreeWithDeferredRefCheck() => abort("adapt should have turned dc: TypeTreeWithDeferredRefCheck into tpt: TypeTree, with tpt.original == dc")
Expand Down
4 changes: 0 additions & 4 deletions test/files/neg/t6601.check

This file was deleted.

3 changes: 0 additions & 3 deletions test/files/neg/t6601/AccessPrivateConstructor_2.scala

This file was deleted.

1 change: 0 additions & 1 deletion test/files/neg/t6601/PrivateConstructor_1.scala

This file was deleted.

0 comments on commit 172f3f6

Please sign in to comment.