@Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; VarDeclType other = (VarDeclType) obj; if (getName() == null) { if (other.getName() != null) return false; } else if (!getName().equals(other.getName())) return false; if (getRawResultType() == null) { if (other.getRawResultType() != null) return false; } else if (!getRawResultType().equals(other.getRawResultType())) return false; return true; }
@Override public boolean isSubtypeOf(DeclType dt, TypeContext ctx) { if (!(dt instanceof VarDeclType)) if (dt instanceof ValDeclType) { ValDeclType vdt = (ValDeclType) dt; return vdt.getName().equals(getName()) && this.getRawResultType().isSubtypeOf(vdt.getRawResultType(), ctx); } else { return false; } VarDeclType vdt = (VarDeclType) dt; return vdt.getName().equals(getName()) && this.getRawResultType().equalsInContext(vdt.getRawResultType(), ctx); }