Skip to content

Commit 6285ba4

Browse files
committed
Authentic structs for static contracts.
1 parent 80bb159 commit 6285ba4

20 files changed

+47
-9
lines changed

typed-racket-lib/typed-racket/static-contracts/combinators/any.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727

2828
(struct any-combinator combinator ()
2929
#:transparent
30+
#:authentic
3031
#:methods gen:sc
3132
[(define (sc-map v f) v)
3233
(define (sc-traverse v f) (void))

typed-racket-lib/typed-racket/static-contracts/combinators/case-lambda.rkt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424

2525
(struct case-combinator combinator ()
2626
#:transparent
27+
#:authentic
2728
#:property prop:combinator-name "case->/sc"
2829
#:methods gen:sc
2930
[(define (sc-map v f)
@@ -38,6 +39,7 @@
3839
(struct arr-combinator combinator ()
3940
#:transparent
4041
#:property prop:combinator-name "arr/sc"
42+
#:authentic
4143
#:methods gen:sc
4244
[(define (sc-map v f)
4345
(arr-combinator (arr-seq-sc-map f (combinator-args v))))
@@ -83,6 +85,7 @@
8385

8486

8587
(struct arr-seq (args rest range)
88+
#:authentic
8689
#:transparent
8790
#:property prop:sequence
8891
(match-lambda

typed-racket-lib/typed-racket/static-contracts/combinators/control.rkt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
[prompt-tag/sc ((listof static-contract?) (or/c (listof static-contract?) #f) . -> . static-contract?)])
1616

1717
(struct prompt-tag-combinator combinator ()
18+
#:authentic
1819
#:transparent
1920
#:property prop:combinator-name "prompt-tag/sc"
2021
#:methods gen:sc
@@ -36,6 +37,7 @@
3637
(merge-restricts* 'chaperone (map f (pt-seq->list (combinator-args v)))))])
3738

3839
(struct pt-seq (vals call-cc)
40+
#:authentic
3941
#:transparent
4042
#:property prop:sequence
4143
(lambda (s)

typed-racket-lib/typed-racket/static-contracts/combinators/dep-function.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
pre-deps
2222
rng
2323
rng-deps)
24+
#:authentic
2425
#:transparent
2526
#:property prop:combinator-name "dep->/sc"
2627
#:methods gen:sc

typed-racket-lib/typed-racket/static-contracts/combinators/exist.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717

1818
(struct exist-combinator combinator ()
19+
#:authentic
1920
#:transparent
2021
#:methods gen:sc
2122
[(define (sc-map v f)

typed-racket-lib/typed-racket/static-contracts/combinators/function.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
static-contract?)])
2424

2525
(struct function-combinator combinator (indices mand-kws opt-kws typed-side?)
26+
#:authentic
2627
#:property prop:combinator-name "->/sc"
2728
#:methods gen:equal+hash [(define (equal-proc a b recur) (function-sc-equal? a b recur))
2829
(define (hash-proc v recur) (function-sc-hash v recur))

typed-racket-lib/typed-racket/static-contracts/combinators/name.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,7 @@
9292
(list typed-sc untyped-sc both-sc)))
9393

9494
(struct name-combinator combinator (gen-name)
95+
#:authentic
9596
#:transparent
9697
#:property prop:combinator-name "name/sc"
9798
#:methods gen:sc

typed-racket-lib/typed-racket/static-contracts/combinators/none.rkt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
(display "#<none/sc>" port)))
2424

2525
(struct none-combinator combinator ()
26+
#:authentic
2627
#:transparent
2728
#:methods gen:sc
2829
[(define (sc-map v f) v)

typed-racket-lib/typed-racket/static-contracts/combinators/object.rkt

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,13 @@
1313
typed-racket/utils/opaque-object)
1414
(for-syntax racket/base syntax/parse))
1515

16-
(struct member-spec (modifier id sc) #:transparent)
16+
(struct member-spec (modifier id sc) #:authentic #:transparent)
1717

1818
(define field-modifiers '(field init init-field inherit-field))
1919
(define method-modifiers '(method inherit super inner override augment augride))
2020

2121
(struct object-combinator combinator (opaque?)
22+
#:authentic
2223
#:transparent
2324
#:property prop:combinator-name "object/sc"
2425
#:methods gen:sc
@@ -34,6 +35,7 @@
3435
(merge-restricts* 'impersonator (map f (member-seq->list (combinator-args v)))))])
3536

3637
(struct class-combinator combinator (opaque absents)
38+
#:authentic
3739
#:transparent
3840
#:property prop:combinator-name "class/sc"
3941
#:methods gen:sc
@@ -52,6 +54,7 @@
5254
(merge-restricts* 'impersonator (map f (member-seq->list (combinator-args v)))))])
5355

5456
(struct instanceof-combinator combinator ()
57+
#:authentic
5558
#:transparent
5659
#:property prop:combinator-name "instanceof/sc"
5760
#:methods gen:sc
@@ -78,8 +81,9 @@
7881
(filter-map member-spec-sc vals)]))
7982

8083
(struct member-seq (vals)
81-
#:transparent
82-
#:property prop:sequence member-seq->list)
84+
#:authentic
85+
#:transparent
86+
#:property prop:sequence member-seq->list)
8387

8488
(define (member-seq-sc-map f seq)
8589
(match seq

typed-racket-lib/typed-racket/static-contracts/combinators/parametric.rkt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
[sealing-var/sc (identifier? . -> . static-contract?)])
3232

3333
(struct parametric-combinator combinator (vars)
34+
#:authentic
3435
#:transparent
3536
#:property prop:combinator-name "parametric->/sc"
3637
#:methods gen:sc
@@ -66,6 +67,7 @@
6667

6768
;; combinator for sealing-> contracts for row polymorphism
6869
(struct sealing-combinator combinator (vars members)
70+
#:authentic
6971
#:transparent
7072
#:property prop:combinator-name "sealing->/sc"
7173
#:methods gen:sc

0 commit comments

Comments
 (0)