for (int i = 0; i < node.jjtGetChild(0).jjtGetNumChildren(); i++) {
fastNode.jjtAddChild(node.jjtGetChild(0).jjtGetChild(i), i);
}
return super.visit(fastNode, data);
} else {
Node patternNode = node.jjtGetChild(node.jjtGetNumChildren() - 1);
boolean checkPattern = !(patternNode instanceof ASTAttribute);
if (checkPattern) {
if (withinInfo instanceof MemberInfo) {
return patternNode.jjtAccept(this, withinInfo);
} else if (withinInfo instanceof ClassInfo) {
Boolean matchDeclaringType = (Boolean) patternNode.jjtAccept(this, withinInfo);
if (Boolean.FALSE.equals(matchDeclaringType)) {
return Boolean.FALSE;
} else {
// may be we match now but not later?
return null;