if (member!=null) {
Unit unit = model.getUnit();
if (member instanceof Method &&
model instanceof Method &&
s instanceof ClassOrInterface) {
Method abstraction;
if (!((Method) member).isAbstraction()) {
abstraction = new Method();
abstraction.setAbstraction(true);
abstraction.setType(new UnknownType(unit).getType());
abstraction.setName(model.getName());
abstraction.setShared(true);
abstraction.setActual(true);
abstraction.setContainer(s);
abstraction.setScope(s);
abstraction.setUnit(unit);
((Method) member).setOverloaded(true);
abstraction.setOverloads(new ArrayList<Declaration>());
abstraction.getOverloads().add(member);
s.getMembers().add(abstraction);
}
else {
abstraction = (Method) member;
}
((Method) model).setOverloaded(true);
abstraction.getOverloads().add(model);
}
else {
that.addError("duplicate declaration name: '" +
model.getName() + "'");
}