#!/bin/sh set -eu directory=$(mktemp -d) trap 'rm -rf "$directory"' EXIT HUP INT TERM reject() { printf '%s\n' "$1" > "$directory/rejected.ml" if "${OCAMLC:-ocamlc}" -ppx ./rewrite -c "$directory/rejected.ml" 2> "$directory/error"; then echo "Unexpected compilation success: $1" >&2 exit 1 fi if ! grep -q "$2" "$directory/error"; then cat "$directory/error" >&2 exit 1 fi } reject 'type t = { colour : string } [@@fieldglass generate ~no_get] let _ = colour' 'Unbound value colour' reject 'type t = { colour : string } [@@fieldglass generate ~no_set] let _ = set_colour' 'Unbound value set_colour' reject 'type t = { colour : string } [@@fieldglass generate ~no_update] let _ = update_colour' 'Unbound value update_colour' reject 'type t = { colour : string } [@@fieldglass generate ~no_lens] let _ = _colour' 'Unbound value _colour' reject 'type t = { colour : string } [@@fieldglass generate ~just_lens] let _ = colour' 'Unbound value colour'