Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions collects/tests/typed-scheme/succeed/pr11171.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#lang racket/load

(module UNTYPED racket/base
(struct IntTree
(elem left right))

(provide (struct-out IntTree)))

(module TYPED typed/racket
(require/typed 'UNTYPED
[struct IntTree
([elem : Integer]
[left : IntTree]
[right : IntTree])]))
14 changes: 14 additions & 0 deletions collects/tests/typed-scheme/succeed/pr11194.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#lang racket/load

(module untyped racket
(struct foo (bar baz))
(define f (lambda (x) (+ (foo-baz x) 3)))

(provide [struct-out foo]
f))

(module typed typed/racket
(require/typed 'untyped
[struct foo ([bar : Number] [baz : String])]))

(require 'typed)
16 changes: 16 additions & 0 deletions collects/tests/typed-scheme/succeed/pr11314.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#lang racket/load

(module A racket
(define-struct point [x y])
(point 1 2)
(provide (all-defined-out)))

(module B typed/racket
(require/typed 'A
[struct point ([x : Integer] [y : Integer])])
(point 1 2)
(struct: pt ([x : Integer] [y : Integer]))
(pt 1 2))

(require 'A)
(require 'B)
206 changes: 206 additions & 0 deletions collects/tests/typed-scheme/succeed/require-struct.rkt
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
#lang racket/load

(module untyped racket
(provide (all-defined-out))
(struct a (v))
(struct b a (v))
(struct c (v) #:constructor-name c-maker)
(struct d c (v) #:constructor-name d-maker)
(define-struct e (v))
(define-struct (f e) (v))
(struct g (v) #:extra-constructor-name make-g)
(struct h g (v) #:extra-constructor-name make-h))

(module typed typed/racket
(require/typed 'untyped
(struct a ((v : Integer)))
(struct (b a) ((v : String)))
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f))

(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11"))
(require 'typed)


(module typed2 typed/racket/base
(require/typed 'untyped
(struct a ((v : Integer)))
(struct (b a) ((v : String)))
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f))

(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11"))
(require 'typed2)


(module typed3 typed-scheme
(require/typed 'untyped
(struct a ((v : Integer)) #:constructor-name a)
(struct (b a) ((v : String)) #:constructor-name b)
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f)
(struct g ((v : Integer)))
(struct (h g) ((v : String))))

(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))

(require 'typed3)


(module typed4 typed/scheme
(require/typed 'untyped
(struct a ((v : Integer)) #:constructor-name a)
(struct (b a) ((v : String)) #:constructor-name b)
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f)
(struct g ((v : Integer)))
(struct (h g) ((v : String))))

(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))

(require 'typed4)


(module typed5 typed/scheme/base
(require/typed 'untyped
(struct a ((v : Integer)) #:constructor-name a)
(struct (b a) ((v : String)) #:constructor-name b)
(struct c ((v : Integer)) #:constructor-name c-maker)
(struct (d c) ((v : String)) #:constructor-name d-maker)
(struct e ((v : Integer)) #:extra-constructor-name make-e)
(struct (f e) ((v : String)) #:extra-constructor-name make-f)
(struct g ((v : Integer)))
(struct (h g) ((v : String))))

(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))

(require 'typed5)


(module typed6 typed/racket
(require-typed-struct a ((v : Integer)) 'untyped)
(require-typed-struct (b a) ((v : String)) 'untyped)
(require-typed-struct c ((v : Integer)) #:constructor-name c-maker 'untyped)
(require-typed-struct (d c) ((v : String)) #:constructor-name d-maker 'untyped)
(require-typed-struct e ((v : Integer)) #:extra-constructor-name make-e 'untyped)
(require-typed-struct (f e) ((v : String)) #:extra-constructor-name make-f 'untyped)

(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11"))

(require 'typed6)


(module typed7 typed/scheme
(require-typed-struct a ((v : Integer)) #:constructor-name a 'untyped)
(require-typed-struct (b a) ((v : String)) #:constructor-name b 'untyped)
(require-typed-struct c ((v : Integer)) #:constructor-name c-maker 'untyped)
(require-typed-struct (d c) ((v : String)) #:constructor-name d-maker 'untyped)
(require-typed-struct e ((v : Integer)) #:extra-constructor-name make-e 'untyped)
(require-typed-struct (f e) ((v : String)) #:extra-constructor-name make-f 'untyped)
(require-typed-struct g ((v : Integer)) 'untyped)
(require-typed-struct (h g) ((v : String)) 'untyped)


(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))

(require 'typed7)

(module typed8 typed-scheme
(require-typed-struct a ((v : Integer)) #:constructor-name a 'untyped)
(require-typed-struct (b a) ((v : String)) #:constructor-name b 'untyped)
(require-typed-struct c ((v : Integer)) #:constructor-name c-maker 'untyped)
(require-typed-struct (d c) ((v : String)) #:constructor-name d-maker 'untyped)
(require-typed-struct e ((v : Integer)) #:extra-constructor-name make-e 'untyped)
(require-typed-struct (f e) ((v : String)) #:extra-constructor-name make-f 'untyped)
(require-typed-struct g ((v : Integer)) 'untyped)
(require-typed-struct (h g) ((v : String)) 'untyped)


(a 0)
(b 1 "2")
(c-maker 3)
(d-maker 4 "5")
(make-e 6)
(make-f 7 "8")
(e 9)
(f 10 "11")
(make-g 12)
(make-h 13 "14")
(g 15)
(h 16 "17"))

(require 'typed8)

4 changes: 2 additions & 2 deletions collects/tests/typed-scheme/succeed/require-substruct.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
(provide (all-defined-out)))

(module n typed-scheme
(require-typed-struct X ([x : Number]) 'm)
(require-typed-struct (Y X) ([y : Number]) 'm)
(require-typed-struct X ([x : Number]) #:extra-constructor-name make-X 'm)
(require-typed-struct (Y X) ([y : Number]) #:extra-constructor-name make-Y 'm)
(make-X 43)
(define: x : Any 3)
(if (Y? x)
Expand Down
2 changes: 1 addition & 1 deletion collects/tests/typed-scheme/succeed/rts-prov.rkt
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
(provide (all-defined-out)))

(module m typed-scheme
(require-typed-struct q () 'l)
(require-typed-struct q () #:extra-constructor-name make-q 'l)
(provide (all-defined-out)))

(module n typed-scheme
Expand Down
2 changes: 1 addition & 1 deletion collects/tests/typed-scheme/succeed/struct-out.rkt
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
#lang typed-scheme
(require-typed-struct posn ([x : Number] [y : Number]) lang/posn)
(require-typed-struct posn ([x : Number] [y : Number]) #:extra-constructor-name make-posn lang/posn)
(provide (struct-out posn))
Loading