case TypeRef(ThisType(_), Symbol sym, Type[] targs):
case TypeRef(NoPrefix, Symbol sym, Type[] targs):
	    public Type apply(Type tp) {		if (global.debug) global.log("traverse " + tp);//debug	        switch (tp) {		case TypeRef(ThisType(_), Symbol sym, Type[] targs):		    if (isLocal(sym, currentOwner) && 			sym.kind == TYPE && 			!excluded.contains(sym))			markFree(sym, currentOwner);		    break;		case PolyType(Symbol[] tparams, Type restp):		    for (int i = 0; i < tparams.length; i++)			excluded = excluded.incl(tparams[i]);		    Type tp1 = super.map(tp);		    for (int i = 0; i < tparams.length; i++)			excluded = excluded.excl(tparams[i]);		    return tp1;		}		return map(tp);	    }