Select generated operations without introducing hidden dependencies

This commit is contained in:
sneeker committed 2019-04-07 10:12:51 +00:00
1 parent d2a38bd4bc
commit faefa72427
4 files changed
+64 -7

No files matched your search

+27
View File
@@ -0,0 +1,27 @@
#!/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'