Remove output, incomplete types should not be in the main graph type, as wrappers may add/remove fields in the incomplete type in the graph transform or creation code.

This commit is contained in:
Georges Dupéron 2017-01-18 04:45:04 +01:00
parent f615ae243b
commit dc449fae4d
3 changed files with 11 additions and 8 deletions

View File

@ -117,8 +117,11 @@ We define here the compile-time metadata describing a graph type.
[field-order (listof identifier?)]
[fields (hash/c symbol? field-info? #:immutable #t)]
[promise-type identifier?]
[make-incomplete-type identifier?]
[incomplete-type identifier?])
;; Wrappers can mean that we have incomplete types with fewer
;; fields than the final node type.
;[make-incomplete-type identifier?]
;[incomplete-type identifier?]
)
#:transparent
#:methods gen:custom-write
[(define write-proc (struct-printer 'node-info))]

View File

@ -89,9 +89,9 @@
<field-info>)
#'([fieldᵢⱼ τᵢⱼ] ))))
(check-remembered-node! #'(nodeᵢ fieldᵢⱼ ))
(meta-struct-constructor
#;(meta-struct-constructor
(check-remembered-tagged! #'(node-incompleteᵢ fieldᵢⱼ )))
(check-remembered-tagged! #'(node-incompleteᵢ fieldᵢⱼ )))]
#;(check-remembered-tagged! #'(node-incompleteᵢ fieldᵢⱼ )))]
@chunk[<field-info>
(field-info #'τᵢⱼ)]

View File

@ -15,7 +15,7 @@
#:invariant City.citizens._ City.streets._.houses._.owner
#:invariant City.citizens._ City.streets._.houses._.owner)
(begin-for-syntax
(require racket/pretty)
(parameterize ([pretty-print-columns 188])
(pretty-print (syntax-local-value #'g1))))
#;(begin-for-syntax
(require racket/pretty)
(parameterize ([pretty-print-columns 188])
(pretty-print (syntax-local-value #'g1))))