public boolean equals(Object obj) {
        // Neither ParameterDeclarationImpl objects nor their symbols
        // are cached by the current implementation, so check symbol
        // owners and names.

        if (obj instanceof ParameterDeclarationImpl) {
            ParameterDeclarationImpl that = (ParameterDeclarationImpl) obj;
            return sym.owner == that.sym.owner &&
                   sym.name == that.sym.name &&
                   env == that.env;
        } else {
            return false;
        }
    }