diff --git a/collects/mzlib/contract.ss b/collects/mzlib/contract.ss index 3aefa4e..b3b0da5 100644 --- a/collects/mzlib/contract.ss +++ b/collects/mzlib/contract.ss @@ -783,6 +783,8 @@ add struct contracts for immutable structs? (define (make-opt->/proc method-proc? stx) (syntax-case stx (any) + [(_ (reqs ...) (opts ...) any) + (make-opt->*/proc method-proc? (syntax (opt->* (reqs ...) (opts ...) any)))] [(_ (reqs ...) (opts ...) res) (make-opt->*/proc method-proc? (syntax (opt->* (reqs ...) (opts ...) (res))))])) diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/mzscheme/contract-test.ss index 2390062..f2d8d6a 100644 --- a/collects/tests/mzscheme/contract-test.ss +++ b/collects/tests/mzscheme/contract-test.ss @@ -119,6 +119,7 @@ (test/no-error '(opt-> (integer?) (integer?) integer?)) (test/no-error '(opt-> ((flat-contract integer?)) ((flat-contract integer?)) (flat-contract integer?))) + (test/no-error '(opt-> ((flat-contract integer?)) ((flat-contract integer?)) any)) (test/no-error '(opt->* (integer?) (integer?) (integer?))) (test/no-error '(opt->* ((flat-contract integer?)) ((flat-contract integer?)) ((flat-contract integer?)))) (test/no-error '(opt->* (integer?) (integer?) any))