public void visitCallMethodExpr(final CallMethodExpr expr) {
		// Method invocations are to be thought of, in terms of
		// binary expression trees, as
		// (CallMethodExpr)
		// / \
		// receiver .
		// / \
		// arg1 .
		// / \
		// arg2 .
		// / \
		// arg3 ...
		// This might be the opposite of what one would think in terms
		// of currying (ie, one might think of currying in terms of
		// left associativity), but this gives a better picture of what
		// happens to the stack when invokestatic or invokevirtual is called:
		// objectref, [arg1, [arg2 ...]] => ...

		expr.receiver().visit(this);
		final Expr[] params = expr.params();
		if (!found && (exchangeFactor < 2) && (params.length > 0)) {
			exchangeFactor++; // (reciever won't be wide)
			params[0].visit(this);
		}

	}