Constraint constraint = (Constraint) next;
Declaration[] decl = constraint.getRequiredDeclarations();
for ( int i = 0; i < decl.length; i++ ) {
Declaration resolved = resolver.getDeclaration(null, decl[i].getIdentifier() );
if ( resolved != null && resolved != decl[i] ) {
constraint.replaceDeclaration( decl[i],
resolved );
} else if( resolved == null ) {
// it is probably an implicit declaration, so find the corresponding pattern
Pattern old = decl[i].getPattern();
Pattern current = resolver.findPatternByIndex( old.getIndex() );