diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/rep/rep-utils.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/rep/rep-utils.rkt index 24115222..e301292a 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/rep/rep-utils.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/rep/rep-utils.rkt @@ -356,7 +356,7 @@ ;; NOTE: change these if the definitions above change, or everything will segfault (define-syntax-rule (unsafe-Rep-seq v) (unsafe-struct*-ref v 0)) -(define-syntax-rule (unsafe-Type-key v) (unsafe-struct*-ref v 1)) +(define-syntax-rule (unsafe-Type-key v) (unsafe-struct*-ref v 4)) (provide unsafe-Rep-seq unsafe-Type-key) (define (Rep-values rep) diff --git a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt index 35483c32..fb59c7ea 100644 --- a/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt +++ b/pkgs/typed-racket-pkgs/typed-racket-lib/typed-racket/types/subtype.rkt @@ -448,7 +448,6 @@ [((Base: _ _ _ #t) (Union: l2)) #:when (eq? kt 'number) (and (memq s l2) A0)] - ;; this appears to never be called [((Union: l1) (Union: l2)) #:when (and (eq? ks 'number) (eq? kt 'number)) ;; l1 should be a subset of l2 diff --git a/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/rep-tests.rkt b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/rep-tests.rkt new file mode 100644 index 00000000..8154c9dc --- /dev/null +++ b/pkgs/typed-racket-pkgs/typed-racket-test/tests/typed-racket/unit-tests/rep-tests.rkt @@ -0,0 +1,23 @@ +#lang racket/base + +;; Tests for TR representation data structures such as types + +(require "test-utils.rkt" + rackunit + typed-racket/rep/rep-utils + typed-racket/rep/type-rep + typed-racket/types/abbrev) + +(provide tests) +(gen-test-main) + +(define tests + (test-suite + "Tests for TR IR data structures" + + ;; Make sure that unsafe operations return the same results as safe ones + (check-equal? (Rep-seq -String) (unsafe-Rep-seq -String)) + (check-equal? (Rep-seq (-pair -String -String)) (unsafe-Rep-seq (-pair -String -String))) + (check-equal? (Type-key -String) (unsafe-Type-key -String)) + (check-equal? (Type-key (-pair -String -String)) (unsafe-Type-key (-pair -String -String))) + ))