assert this.owner == that.owner : this + " " + that;
assert this.owner == that.owner : Debug.show(this) + " " + Debug.show(that);
    public Symbol overloadWith(Symbol that) {        assert isTerm() : this;	assert this.name == that.name : this + " " + that;	assert this.owner == that.owner : this + " " + that;	assert (this.flags & that.flags & JAVA) != 0 ||	    (this.flags & (SOURCEFLAGS | JAVA) & ~ACCESSFLAGS) == 	    (that.flags & (SOURCEFLAGS | JAVA) & ~ACCESSFLAGS) : this + " " + that;        TermSymbol overloaded = new TermSymbol(            pos, name, owner, 	    ((this.flags | that.flags) & (SOURCEFLAGS | JAVA) & ~ACCESSFLAGS) |	    (this.flags & that.flags & ACCESSFLAGS));        overloaded.setInfo(new LazyOverloadedType(this, that));        return overloaded;    }