test-constructor2.rkt (1230B)
1 #lang typed/racket 2 3 (require phc-adt phc-toolkit type-expander typed/rackunit) 4 (adt-init) 5 6 (check-equal?: (constructor-values 7 (ann (constructor a 1 "x") 8 ;; TODO: Make a (Constructor-AnyTag …) type expander. 9 (tagged a [values (List Number String)]))) 10 (list 1 "x")) 11 (check-equal?: (constructor-values 12 (ann (constructor a 1 "x") 13 (tagged a [values Any]))) 14 (list 1 "x")) 15 (check-equal?: (constructor-values 16 (ann (constructor a 1 "x") 17 (constructor a Number String))) 18 (list 1 "x")) 19 (check-equal?: (constructor-values 20 (ann (constructor b) 21 (constructor b))) 22 (list)) 23 (check-equal?: (constructor-values 24 (ann (constructor c 'd) 25 (constructor c Symbol))) 26 '(d)) 27 (check-equal?: (ann (constructor c 2 "y") 28 (constructor c Number String)) 29 (constructor c 2 "y")) 30 (check-not-equal?: (constructor d 2 "y") 31 (constructor d 2 "y" 'z)) 32 (check-not-equal?: (constructor e 2 "y") 33 (constructor F 2 "y"))