+
+ @Override
+ public boolean visit(QualifiedAllocationExpression qualifiedAllocationExpression, BlockScope scope) {
+ anonymousConstructorCall.push(qualifiedAllocationExpression);
+ return super.visit(qualifiedAllocationExpression, scope);
+ }
+
+ @Override
+ public void endVisit(QualifiedAllocationExpression qualifiedAllocationExpression, BlockScope scope) {
+ if(anonymousConstructorCall.pop() != qualifiedAllocationExpression){
+ throw new Error("stack illegally manipulated");
+ }
+ }
+