summaryrefslogtreecommitdiff
path: root/sources/scalac/checkers
diff options
context:
space:
mode:
authorpaltherr <paltherr@epfl.ch>2004-03-02 17:36:31 +0000
committerpaltherr <paltherr@epfl.ch>2004-03-02 17:36:31 +0000
commit94ce263ccbdd5e2362d7c3511290ed15b30332aa (patch)
tree2c2ad385ae54526ad54cd934281846819c970694 /sources/scalac/checkers
parentdbb4b1b89d574f00400e9d40cf598f598d5aa78f (diff)
downloadscala-94ce263ccbdd5e2362d7c3511290ed15b30332aa.tar.gz
scala-94ce263ccbdd5e2362d7c3511290ed15b30332aa.tar.bz2
scala-94ce263ccbdd5e2362d7c3511290ed15b30332aa.zip
- Removed CheckOwners
Diffstat (limited to 'sources/scalac/checkers')
-rw-r--r--sources/scalac/checkers/CheckOwners.java165
1 files changed, 0 insertions, 165 deletions
diff --git a/sources/scalac/checkers/CheckOwners.java b/sources/scalac/checkers/CheckOwners.java
deleted file mode 100644
index 2bc09016f8..0000000000
--- a/sources/scalac/checkers/CheckOwners.java
+++ /dev/null
@@ -1,165 +0,0 @@
-/* ____ ____ ____ ____ ______ *\
-** / __// __ \/ __// __ \/ ____/ SOcos COmpiles Scala **
-** __\_ \/ /_/ / /__/ /_/ /\_ \ (c) 2002, LAMP/EPFL **
-** /_____/\____/\___/\____/____/ **
-\* */
-
-// $Id$
-
-package scalac.checkers;
-
-import scalac.util.*;
-import scalac.ast.*;
-import scalac.symtab.*;
-import scalac.Global;
-import scalac.util.Debug;
-import Tree.*;
-
-/**
- * Check that the owner of symbols is set correctly.
- *
- * @author Michel Schinz
- * @version 1.0
- */
-
-public class CheckOwners extends Checker {
- protected Symbol currentOwner;
-
- public CheckOwners(Global global) {
- super(global);
- currentOwner = global.definitions.ROOT_CLASS;
- }
-
- protected void traverse(Tree tree, Symbol owner) {
- Symbol prevOwner = currentOwner;
- currentOwner = owner;
- traverse(tree);
- currentOwner = prevOwner;
- }
-
- protected void traverse(Tree[] array, Symbol owner) {
- Symbol prevOwner = currentOwner;
- currentOwner = owner;
- traverse(array);
- currentOwner = prevOwner;
- }
-
- protected void traverse(Tree[][] array, Symbol owner) {
- Symbol prevOwner = currentOwner;
- currentOwner = owner;
- traverse(array);
- currentOwner = prevOwner;
- }
-
- protected void traverse(Template templ, Symbol owner) {
- Symbol prevOwner = currentOwner;
- if (owner.kind == Kinds.CLASS)
- currentOwner = owner.primaryConstructor();
- traverse(templ.parents);
- currentOwner = owner;
-
- Symbol templSymbol = templ.symbol();
- Tree[] body = templ.body;
- for (int i = 0; i < body.length; ++i) {
- switch (body[i]) {
- case PackageDef(_,_):
- case ClassDef(_,_,_,_,_,_):
- case ModuleDef(_,_,_,_):
- case DefDef(_,_,_,_,_,_):
- case ValDef(_,_,_,_):
- case AbsTypeDef(_,_,_, _):
- case AliasTypeDef(_,_,_, _):
- traverse(body[i], owner);
- break;
- default:
- traverse(body[i], templSymbol);
- }
- }
-
- currentOwner = prevOwner;
- }
-
- protected void checkOwner(Tree tree, Symbol sym) {
- Symbol owner = sym.owner();
- verify(tree,
- owner == currentOwner,
- "owner",
- "incorrect owner for " + Debug.toString(sym) + ":\n"
- + " found: " + Debug.toString(owner) + "\n"
- + " required: " + Debug.toString(currentOwner));
- }
-
- public void traverse(Tree tree) {
- switch(tree) {
- case PackageDef(Tree packaged, Template impl):
- check(tree);
- traverse(packaged);
- traverse(impl, packaged.symbol());
- break;
-
- case ClassDef(int mods,
- Name name,
- AbsTypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Template impl): {
- check(tree);
- traverse(tparams, tree.symbol().primaryConstructor());
- traverse(vparams, tree.symbol().primaryConstructor());
- traverse(tpe);
- traverse(impl, tree.symbol());
- } break;
-
- case ModuleDef(int mods, Name name, Tree tpe, Template impl): {
- check(tree);
- traverse(tpe);
- traverse(impl, tree.symbol().moduleClass());
- } break;
-
- case DefDef(int mods,
- Name name,
- AbsTypeDef[] tparams,
- ValDef[][] vparams,
- Tree tpe,
- Tree rhs): {
- check(tree);
- traverse(tparams, tree.symbol());
- traverse(vparams, tree.symbol());
- traverse(tpe, tree.symbol());
- traverse(rhs, tree.symbol());
- } break;
-
- case ValDef(int mods, Name name, Tree tpe, Tree rhs): {
- check(tree);
- traverse(tpe);
- traverse(rhs, tree.symbol());
- } break;
-
- case AbsTypeDef(int mods, Name name, Tree rhs, Tree lobound): {
- check(tree);
- traverse(rhs, tree.symbol());
- traverse(lobound, tree.symbol());
- } break;
-
- case AliasTypeDef(int mods, Name name, AbsTypeDef[] tparams, Tree rhs): {
- check(tree);
- traverse(tparams, tree.symbol());
- traverse(rhs, tree.symbol());
- } break;
-
- default:
- super.traverse(tree);
- }
- }
-
- public void check(Tree tree) {
- if (tree.definesSymbol()) {
- Symbol sym = tree.symbol();
- if (sym != null && sym != Symbol.NONE) {
- checkOwner(tree, sym);
- if (sym.kind == Kinds.CLASS)
- checkOwner(tree, sym.primaryConstructor());
- }
- }
- }
-}