summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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)