summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2011-06-14 22:48:22 +0000
committerPaul Phillips <paulp@improving.org>2011-06-14 22:48:22 +0000
commitebfbe58d36e1a6f10c6780267950b7353c9502cc (patch)
tree1724966457115ecd508bdeafbb1eb18f93fdccad /src
parente4f800b20550b62d5186130c6f06281f3df3ed90 (diff)
downloadscala-ebfbe58d36e1a6f10c6780267950b7353c9502cc.tar.gz
scala-ebfbe58d36e1a6f10c6780267950b7353c9502cc.tar.bz2
scala-ebfbe58d36e1a6f10c6780267950b7353c9502cc.zip
Update manually created tree which was calling ...
Update manually created tree which was calling Predef.error to call scala.sys.error instead. Created convenience functions in Definitions for getting package objects akin to those for getting classes and objects. No review.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/reflect/internal/Definitions.scala9
-rw-r--r--src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala2
3 files changed, 10 insertions, 3 deletions
diff --git a/src/compiler/scala/reflect/internal/Definitions.scala b/src/compiler/scala/reflect/internal/Definitions.scala
index 8af509e8ec..5201ad2fe0 100644
--- a/src/compiler/scala/reflect/internal/Definitions.scala
+++ b/src/compiler/scala/reflect/internal/Definitions.scala
@@ -228,11 +228,12 @@ trait Definitions /*extends reflect.generic.StandardDefinitions*/ {
lazy val DynamicClass = getClass("scala.Dynamic")
// fundamental modules
+ lazy val SysPackage = getPackageObject("scala.sys")
+ def Sys_error = getMember(SysPackage, nme.error)
lazy val PredefModule: Symbol = getModule("scala.Predef")
lazy val PredefModuleClass = PredefModule.tpe.typeSymbol
def Predef_AnyRef = getMember(PredefModule, "AnyRef") // used by the specialization annotation
def Predef_classOf = getMember(PredefModule, nme.classOf)
- def Predef_error = getMember(PredefModule, nme.error)
def Predef_identity = getMember(PredefModule, nme.identity)
def Predef_conforms = getMember(PredefModule, nme.conforms)
def Predef_wrapRefArray = getMember(PredefModule, nme.wrapRefArray)
@@ -597,6 +598,12 @@ trait Definitions /*extends reflect.generic.StandardDefinitions*/ {
attr
}
+ def getPackageObjectClass(fullname: Name): Symbol =
+ getPackageObject(fullname).companionClass
+
+ def getPackageObject(fullname: Name): Symbol =
+ getModuleOrClass(fullname.toTermName).info.member(newTermName("package"))
+
def getModule(fullname: Name): Symbol =
getModuleOrClass(fullname.toTermName)
diff --git a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
index e03b74d7ab..10f35075af 100644
--- a/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
+++ b/src/compiler/scala/tools/nsc/transform/SpecializeTypes.scala
@@ -1451,7 +1451,7 @@ abstract class SpecializeTypes extends InfoTransform with TypingTransformers {
if (target.isDeferred || conflicting(typeEnv(symbol))) {
treeCopy.DefDef(tree, mods, name, tparams, vparamss, tpt,
localTyper.typed(
- Apply(gen.mkAttributedRef(definitions.Predef_error),
+ Apply(gen.mkAttributedRef(definitions.Sys_error),
List(Literal("boom! you stepped on a bug. This method should never be called.")))))
} else {
// we have an rhs, specialize it
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index 56d5ce9842..4dcc8b3c20 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -1337,7 +1337,7 @@ abstract class RefChecks extends InfoTransform {
case DefDef(mods, name, tparams, vparams, tpt, EmptyTree) if tree.symbol.hasAnnotation(NativeAttr) =>
tree.symbol.resetFlag(DEFERRED)
transform(treeCopy.DefDef(tree, mods, name, tparams, vparams, tpt,
- typed(Apply(gen.mkAttributedRef(Predef_error), List(Literal("native method stub"))))))
+ typed(Apply(gen.mkAttributedRef(Sys_error), List(Literal("native method stub"))))))
case ValDef(_, _, _, _) | DefDef(_, _, _, _, _, _) =>
checkDeprecatedOvers(tree)