From 0c73784c3c969f7bb6a01958a96189e6302cdc46 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Wed, 12 Feb 2014 10:17:37 -0600 Subject: [PATCH] more unexpected strange things broke, so disable new class/c yet again No joy in mudville. See http://drdr.racket-lang.org/28175/ for details Also fix (just introduced) infinite loop in class/c contract-name implementation and tweak naming stuff a little so tests pass --- pkgs/racket-pkgs/racket-test/tests/racket/contract/name.rkt | 2 +- racket/collects/racket/class.rkt | 4 ++-- racket/collects/racket/private/class-c-old.rkt | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pkgs/racket-pkgs/racket-test/tests/racket/contract/name.rkt b/pkgs/racket-pkgs/racket-test/tests/racket/contract/name.rkt index ec7a532f11..a1e6ed10b7 100644 --- a/pkgs/racket-pkgs/racket-test/tests/racket/contract/name.rkt +++ b/pkgs/racket-pkgs/racket-test/tests/racket/contract/name.rkt @@ -336,7 +336,7 @@ c%/c)) (test-name '(class/c (field [f integer?])) (class/c (field [f integer?]))) (test-name '(class/c (field [f integer?])) (class/c (field [f integer?]))) - (test-name '(class/c (init-field [f integer?])) (class/c (init-field [f integer?]))) + (test-name '(class/c (init [f integer?]) (field [f integer?])) (class/c (init-field [f integer?]))) (test-name '(class/c (inherit-field [f integer?])) (class/c (inherit-field [f integer?]))) (test-name '(class/c (absent a b c (field d e f))) (class/c (absent a b c (field d e f)))) (test-name '(class/c (absent a b c)) (class/c (absent a b c))) diff --git a/racket/collects/racket/class.rkt b/racket/collects/racket/class.rkt index a3be91a65b..66472f0073 100644 --- a/racket/collects/racket/class.rkt +++ b/racket/collects/racket/class.rkt @@ -6,8 +6,8 @@ ;; All of the implementation is actually in private/class-internal.rkt, ;; which provides extra (private) functionality to contract.rkt. (require "private/class-internal.rkt" - (except-in "private/class-c-old.rkt" class/c) - (rename-in "private/class-c-new.rkt" [class/c2 class/c])) + "private/class-c-old.rkt" + "private/class-c-new.rkt") (provide-public-names) (provide generic?) diff --git a/racket/collects/racket/private/class-c-old.rkt b/racket/collects/racket/private/class-c-old.rkt index cd869f310a..456cbf423e 100644 --- a/racket/collects/racket/private/class-c-old.rkt +++ b/racket/collects/racket/private/class-c-old.rkt @@ -755,7 +755,7 @@ [else (coerce-contract 'class/c obj)]))) (define (build-class/c-name ctc) - (or (build-class/c-name ctc) + (or (class/c-name ctc) (let* ([handled-methods (for/list ([i (in-list (class/c-methods ctc))] [ctc (in-list (class/c-method-contracts ctc))]) @@ -812,7 +812,7 @@ [(null? fields) (list (cons 'absent meths))] [else - (list (list* 'absent (cons 'field fields) meths))])) + (list `(absent ,@meths (field ,@fields)))])) (define-struct class/c (methods method-contracts fields field-contracts inits init-contracts