Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

compiler crash with protected class access #612

Closed
scabug opened this issue Mar 7, 2008 · 5 comments
Closed

compiler crash with protected class access #612

scabug opened this issue Mar 7, 2008 · 5 comments
Assignees
Milestone

Comments

@scabug
Copy link

scabug commented Mar 7, 2008

Compiling following to files crash the compiler:

app.scala:

package test.app

import test.implicitObject

class implClass( s: String ) extends implicitObject( s )
{
  import test.implicitObject

  def getString = "world!"
  def t = implicitObject.implicitTest( getString )
}

object app extends Application
{
  val x = new implClass( "hello" )
  x.t
} 

test.scala:

package test

object implicitObject {
  protected[test] def implicitTest(s: String)(implicit is: String) = Console.print( is + " " + s + "\n" )
}

abstract class implicitObject( s: String )
{
  implicit val implicitString = s

  def getString: String
} 

Stacktrace:

~/tmp/tmp $$ scalac app.scala test.scala 
Exception in thread "main" java.util.NoSuchElementException: head of empty list
        at scala.Nil$$.head(List.scala:1244)
        at scala.Nil$$.head(List.scala:1241)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.accDefBuf(SuperAccessors.scala:44)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.makeAccessor(SuperAccessors.scala:283)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:189)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:207)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:207)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$5.apply(Trees.scala:1290)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$5.apply(Trees.scala:1289)
        at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1405)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:33)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:27)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.atOwner(SuperAccessors.scala:224)
        at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1288)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:46)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:213)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformTrees$$1.apply(Trees.scala:1381)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformTrees$$1.apply(Trees.scala:1381)
        at scala.List$$.loop$$1(List.scala:254)
        at scala.List$$.mapConserve(List.scala:271)
        at scala.tools.nsc.ast.Trees$$Transformer.transformTrees(Trees.scala:1381)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer$$$$anonfun$$3.apply(SuperAccessors.scala:112)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer$$$$anonfun$$3.apply(SuperAccessors.scala:112)
        at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1405)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:33)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:27)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.atOwner(SuperAccessors.scala:224)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:112)
        at scala.tools.nsc.ast.Trees$$Transformer.transformTemplate(Trees.scala:1383)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:1277)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$2.apply(Trees.scala:1277)
        at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1405)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:33)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:27)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.atOwner(SuperAccessors.scala:224)
        at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1276)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:46)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:99)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1399)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1397)
        at scala.List$$.loop$$1(List.scala:254)
        at scala.List$$.mapConserve(List.scala:271)
        at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:1397)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:1273)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:1273)
        at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1405)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:33)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:27)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.atOwner(SuperAccessors.scala:224)
        at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1272)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:46)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:213)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1399)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transformStats$$1.apply(Trees.scala:1397)
        at scala.List$$.loop$$1(List.scala:254)
        at scala.List$$.mapConserve(List.scala:271)
        at scala.tools.nsc.ast.Trees$$Transformer.transformStats(Trees.scala:1397)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:1273)
        at scala.tools.nsc.ast.Trees$$Transformer$$$$anonfun$$transform$$1.apply(Trees.scala:1273)
        at scala.tools.nsc.ast.Trees$$Transformer.atOwner(Trees.scala:1405)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:33)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.atOwner(TypingTransformers.scala:27)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.atOwner(SuperAccessors.scala:224)
        at scala.tools.nsc.ast.Trees$$Transformer.transform(Trees.scala:1272)
        at scala.tools.nsc.transform.TypingTransformers$$TypingTransformer.transform(TypingTransformers.scala:46)
        at scala.tools.nsc.typechecker.SuperAccessors$$SuperAccTransformer.transform(SuperAccessors.scala:213)
        at scala.tools.nsc.ast.Trees$$Transformer.transformUnit(Trees.scala:1400)
        at scala.tools.nsc.transform.Transform$$Phase.apply(Transform.scala:30)
        at scala.tools.nsc.Global$$GlobalPhase.applyPhase(Global.scala:247)
        at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:233)
        at scala.tools.nsc.Global$$GlobalPhase$$$$anonfun$$run$$1.apply(Global.scala:233)
        at scala.Iterator$$class.foreach(Iterator.scala:387)
        at scala.collection.mutable.ListBuffer$$$$anon$$1.foreach(ListBuffer.scala:255)
        at scala.tools.nsc.Global$$GlobalPhase.run(Global.scala:233)
        at scala.tools.nsc.Global$$Run.compileSources(Global.scala:545)
        at scala.tools.nsc.Global$$Run.compile(Global.scala:629)
        at scala.tools.nsc.Main$$.process(Main.scala:86)
        at scala.tools.nsc.Main$$.main(Main.scala:107)
        at scala.tools.nsc.Main.main(Main.scala)
@scabug
Copy link
Author

scabug commented Mar 7, 2008

Imported From: https://issues.scala-lang.org/browse/SI-612?orig=1
Reporter: Jan Kriesten (jkriesten)

@scabug
Copy link
Author

scabug commented Mar 7, 2008

@ingoem said:
Reduced test in pending/pos

@scabug
Copy link
Author

scabug commented May 21, 2008

@odersky said:
Looks like a protected accessor problem.

@scabug
Copy link
Author

scabug commented Jan 14, 2009

@odersky said:
Milestone next_bugfix deleted

@scabug
Copy link
Author

scabug commented Aug 12, 2009

@paulp said:
Fixed in trunk; test case moved from pending in r18470.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants