final Declaration[] declarations) throws InvalidPatternException {
final List<String> list = new ArrayList<String>();
for ( int i = 0, length = declarations.length; i < length; i++ ) {
for ( final ListIterator<RuleConditionElement> it = (ListIterator<RuleConditionElement>) context.stackIterator(); it.hasPrevious(); ) {
final RuleConditionElement rce = it.previous();
final Declaration decl = rce.resolveDeclaration( declarations[i].getIdentifier() );
if ( decl == null || decl.getPattern().getOffset() > declarations[i].getPattern().getOffset() ) {
list.add( declarations[i].getIdentifier() );
}
}
}