Validate configuration and diagnose unsupported record declarations

This commit is contained in:
milner committed 2019-04-17 05:08:15 +00:00
1 parent e7b4859a7e
commit 871995ff90
2 files changed
+67 -3

No files matched your search

+15
View File
@@ -17,6 +17,21 @@ reject() {
reject 'type t = { colour : string } [@@fieldglass generate ~no_get]
let _ = colour' 'Unbound value colour'
reject 'type t = A [@@fieldglass generate]' 'fieldglass: expected a record'
reject 'type t = { colour : string } [@@fieldglass invalid]' 'fieldglass: expected generate'
reject 'type t = { colour : string } [@@fieldglass generate ~unknown]' 'fieldglass: unrecognised'
reject 'type t = { colour : string } [@@fieldglass generate ~no_get:3]' 'fieldglass: expected a boolean'
reject 'type t = { colour : string } [@@fieldglass generate ~field_prefix:3]' 'fieldglass: expected an identifier'
reject 'type t = { colour : string } [@@fieldglass generate ~field_prefix:"a b"]' 'fieldglass: invalid generated identifier'
reject 'type t = { colour : string } [@@fieldglass generate ~func_named_arg:"type"]' 'fieldglass: invalid generated identifier'
reject 'type t = { colour : string } [@@fieldglass generate ~no_get ~no_get]' 'fieldglass: duplicate option'
reject 'type t = { colour : string } [@@fieldglass generate 3]' 'fieldglass: expected a labelled option'
reject 'type t = { colour : string } [@@fieldglass generate] [@@lens generate]' 'fieldglass: expected'
reject 'type t = { x : int; set_x : int } [@@fieldglass generate]' 'fieldglass: duplicate generated binding'
reject 'type a = { value : int } and b = { value : string } [@@fieldglass generate]' 'fieldglass: duplicate generated binding'
reject 'type t = private { colour : string } [@@fieldglass generate]' 'fieldglass: private records'
reject "type t = { apply : 'a. 'a -> 'a } [@@fieldglass generate]" 'fieldglass: polymorphic fields'
reject 'module type S = sig type t = { colour : string } [@@fieldglass generate] end' 'fieldglass: generate accessors in an implementation'
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]