summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2008-01-28 18:43:24 +0000
committerMartin Odersky <odersky@gmail.com>2008-01-28 18:43:24 +0000
commit4c3fd9db2a9789909508e068ca8ae770b7412f63 (patch)
tree5fd7dceec06a358334d9ad22d5b3d3dab2d8c983
parent2113259af4f54dc09f92799992f1a8d77954d570 (diff)
downloadscala-4c3fd9db2a9789909508e068ca8ae770b7412f63.tar.gz
scala-4c3fd9db2a9789909508e068ca8ae770b7412f63.tar.bz2
scala-4c3fd9db2a9789909508e068ca8ae770b7412f63.zip
hasFlag(DEFERERED) -> isDeferred
-rw-r--r--src/compiler/scala/tools/nsc/backend/icode/Checkers.scala6
-rw-r--r--src/compiler/scala/tools/nsc/transform/Erasure.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala2
-rw-r--r--src/compiler/scala/tools/nsc/transform/Mixin.scala6
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/RefChecks.scala15
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala2
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala2
7 files changed, 18 insertions, 17 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala b/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala
index 942aae646c..c311be4aad 100644
--- a/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala
+++ b/src/compiler/scala/tools/nsc/backend/icode/Checkers.scala
@@ -117,8 +117,10 @@ abstract class Checkers {
in.clear; out.clear;
code = c;
worklist + c.startBlock;
- c.blocks foreach ( bl => { in += Pair(bl, emptyStack);
- out += Pair(bl, emptyStack) } );
+ for (bl <- c.blocks) {
+ in += (bl -> emptyStack)
+ out += (bl -> emptyStack)
+ }
while (worklist.length > 0) {
val block = worklist(0); worklist.trimStart(1);
diff --git a/src/compiler/scala/tools/nsc/transform/Erasure.scala b/src/compiler/scala/tools/nsc/transform/Erasure.scala
index a83c68f797..3b66e87e39 100644
--- a/src/compiler/scala/tools/nsc/transform/Erasure.scala
+++ b/src/compiler/scala/tools/nsc/transform/Erasure.scala
@@ -670,7 +670,7 @@ abstract class Erasure extends AddInterfaces with typechecker.Analyzer {
val member = opc.overriding
val other = opc.overridden
//Console.println("bridge? " + member + ":" + member.tpe + member.locationString + " to " + other + ":" + other.tpe + other.locationString);//DEBUG
- if (!atPhase(currentRun.explicitOuterPhase)(member hasFlag DEFERRED)) {
+ if (!atPhase(currentRun.explicitOuterPhase)(member.isDeferred)) {
val otpe = erasure(other.tpe);
val bridgeNeeded = atPhase(phase.next) (
!(other.tpe =:= member.tpe) &&
diff --git a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
index bf5158324b..5afc6ac3ed 100644
--- a/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
+++ b/src/compiler/scala/tools/nsc/transform/ExplicitOuter.scala
@@ -286,7 +286,7 @@ abstract class ExplicitOuter extends InfoTransform with TransMatcher with Patter
*/
def outerAccessorDef: Tree = {
val outerAcc = outerAccessor(currentClass)
- var rhs = if (outerAcc hasFlag DEFERRED) EmptyTree
+ var rhs = if (outerAcc.isDeferred) EmptyTree
else Select(This(currentClass), outerField(currentClass))
localTyper.typed {
atPos(currentClass.pos) {
diff --git a/src/compiler/scala/tools/nsc/transform/Mixin.scala b/src/compiler/scala/tools/nsc/transform/Mixin.scala
index 71cca50c51..0b377b49fe 100644
--- a/src/compiler/scala/tools/nsc/transform/Mixin.scala
+++ b/src/compiler/scala/tools/nsc/transform/Mixin.scala
@@ -103,7 +103,7 @@ abstract class Mixin extends InfoTransform {
if (settings.debug.value) {
val other = bcs.head.info.nonPrivateDecl(member.name);
log("rebindsuper " + bcs.head + " " + other + " " + other.tpe +
- " " + other.hasFlag(DEFERRED))
+ " " + other.isDeferred)
}
sym = member.overridingSymbol(bcs.head).suchThat(sym => !sym.hasFlag(DEFERRED | BRIDGE))
bcs = bcs.tail
@@ -155,7 +155,7 @@ abstract class Mixin extends InfoTransform {
for (val member <- impl.info.decls.toList) {
if (!member.isMethod && !member.isModule && !member.isModuleVar) {
- assert(member.isTerm && !member.hasFlag(DEFERRED), member)
+ assert(member.isTerm && !member.isDeferred, member)
if (member.getter(impl) hasFlag PRIVATE) {
member.makeNotPrivate(clazz) // this will also make getter&setter not private
}
@@ -483,7 +483,7 @@ abstract class Mixin extends InfoTransform {
def isNotDuplicate(tree: Tree) = tree match {
case DefDef(_, _, _, _, _, _) =>
val sym = tree.symbol;
- !((sym hasFlag DEFERRED) &&
+ !(sym.isDeferred &&
(newSyms exists (nsym => nsym.name == sym.name && (nsym.tpe matches sym.tpe))))
case _ =>
true
diff --git a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
index ae44f1b569..bc8a15297e 100644
--- a/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/RefChecks.scala
@@ -145,14 +145,13 @@ abstract class RefChecks extends InfoTransform {
// return if we already checked this combination elsewhere
if (member.owner != clazz) {
- if ((member.owner isSubClass other.owner) &&
- ((member hasFlag DEFERRED) || !(other hasFlag DEFERRED))) {
+ if ((member.owner isSubClass other.owner) && (member.isDeferred || !other.isDeferred)) {
//Console.println(infoString(member) + " shadows1 " + infoString(other) " in " + clazz);//DEBUG
return;
}
if (clazz.info.parents exists (parent =>
(parent.typeSymbol isSubClass other.owner) && (parent.typeSymbol isSubClass member.owner) &&
- ((member hasFlag DEFERRED) || !(other hasFlag DEFERRED)))) {
+ (member.isDeferred || !other.isDeferred))) {
//Console.println(infoString(member) + " shadows2 " + infoString(other) + " in " + clazz);//DEBUG
return;
}
@@ -174,7 +173,7 @@ abstract class RefChecks extends InfoTransform {
overrideAccessError()
} else if (other hasFlag FINAL) { // (1.2)
overrideError("cannot override final member");
- } else if (!(other hasFlag DEFERRED) && !(member hasFlag (OVERRIDE | ABSOVERRIDE))) { // (1.3)
+ } else if (!other.isDeferred && !(member hasFlag (OVERRIDE | ABSOVERRIDE))) { // (1.3)
overrideError("needs `override' modifier");
} else if ((other hasFlag ABSOVERRIDE) && other.isIncompleteIn(clazz) && !(member hasFlag ABSOVERRIDE)) {
overrideError("needs `abstract override' modifiers")
@@ -183,7 +182,7 @@ abstract class RefChecks extends InfoTransform {
overrideError("cannot override a mutable variable")
} else if (other.isStable && !member.isStable) { // (1.4)
overrideError("needs to be an immutable value")
- } else if (other.isStable && !(other hasFlag DEFERRED) && other.owner.isTrait && (member hasFlag OVERRIDE)) {
+ } else if (other.isStable && !other.isDeferred && other.owner.isTrait && (member hasFlag OVERRIDE)) {
overrideError("cannot override a value or variable definition in a trait " +
"\n (this is an implementation restriction)")
} else {
@@ -251,7 +250,7 @@ abstract class RefChecks extends InfoTransform {
clazz.setFlag(ABSTRACT)
}
for (val member <- clazz.tpe.nonPrivateMembers)
- if ((member hasFlag DEFERRED) && !(clazz hasFlag ABSTRACT)) {
+ if (member.isDeferred && !(clazz hasFlag ABSTRACT)) {
abstractClassError(
false, infoString(member) + " is not defined" + analyzer.varNotice(member))
} else if ((member hasFlag ABSOVERRIDE) && member.isIncompleteIn(clazz)) {
@@ -266,7 +265,7 @@ abstract class RefChecks extends InfoTransform {
// that are not implemented in a subclass.
def checkNoAbstractDecls(bc: Symbol) {
for (val decl <- bc.info.decls.elements) {
- if (decl hasFlag DEFERRED) {
+ if (decl.isDeferred) {
val impl = decl.matchingSymbol(clazz.thisType)
if (impl == NoSymbol || (decl.owner isSubClass impl.owner)) {
abstractClassError(false, "there is a deferred declaration of "+infoString(decl)+
@@ -694,7 +693,7 @@ abstract class RefChecks extends InfoTransform {
if (symbol.isDeprecated) {
val concrOvers =
symbol.allOverriddenSymbols.filter(sym =>
- !sym.isDeprecated && !(sym hasFlag DEFERRED))
+ !sym.isDeprecated && !sym.isDeferred)
if(!concrOvers.isEmpty)
unit.deprecationWarning(
tree.pos,
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
index 7cfd7ac461..821c0e6b4d 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
@@ -142,7 +142,7 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT
case Select(sup @ Super(_, mix), name) =>
val sym = tree.symbol
val clazz = sup.symbol
- if (sym hasFlag DEFERRED) {
+ if (sym.isDeferred) {
val member = sym.overridingSymbol(clazz);
if (mix != nme.EMPTY.toTypeName || member == NoSymbol ||
!((member hasFlag ABSOVERRIDE) && member.isIncompleteIn(clazz)))
diff --git a/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala b/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala
index dc05fc32ba..73c9191c61 100644
--- a/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/TreeCheckers.scala
@@ -72,7 +72,7 @@ abstract class TreeCheckers extends Analyzer {
tree match {
case DefDef(_, _, _, _, _, _) =>
if (tree.symbol.hasFlag(ACCESSOR) &&
- !tree.symbol.hasFlag(DEFERRED) &&
+ !tree.symbol.isDeferred &&
!tree.symbol.tpe.resultType.isInstanceOf[ConstantType]) {
assert(tree.symbol.accessed != NoSymbol, tree.symbol)
assert(tree.symbol.accessed.getter(tree.symbol.owner) == tree.symbol ||