public void visitStoreExpr(final StoreExpr expr) {

		if ((expr.target() instanceof LocalExpr)
				|| (expr.target() instanceof StaticFieldExpr)) {
			if (previous == expr.expr()) { // can't be target, because then
				// it would be a definition, for which
				// Type0Visitor is not called
				previous = expr;
				expr.parent.visit(this);
			}
		}

		else if (expr.target() instanceof ArrayRefExpr) {
			if (previous == expr.expr()) {
				check(((ArrayRefExpr) expr.target()).index());
			} else if (previous == expr.target()) {
				previous = expr;
				expr.parent.visit(this);
			}
		}

		else if (expr.target() instanceof FieldExpr) {
			if (previous == expr.expr()) {
				check(expr.target());
			} else if (previous == expr.target()) {
				previous = expr;
				expr.parent.visit(this);
			}
		}
	}