From 0971d37b705a11b278995989516496101197adb1 Mon Sep 17 00:00:00 2001 From: Stevie Strickland Date: Thu, 18 Feb 2010 21:50:55 +0000 Subject: [PATCH] Add first order checks for public fields and methods for both class/c and object/c. svn: r18159 --- collects/tests/mzscheme/contract-test.ss | 67 ++++++++++++++++++++---- 1 file changed, 57 insertions(+), 10 deletions(-) diff --git a/collects/tests/mzscheme/contract-test.ss b/collects/tests/mzscheme/contract-test.ss index b9e9c4e655..a1ce8d3c26 100644 --- a/collects/tests/mzscheme/contract-test.ss +++ b/collects/tests/mzscheme/contract-test.ss @@ -4076,11 +4076,10 @@ (test/spec-passed 'class/c-first-order-1 - '(let () - (define/contract cls% - (class/c) - object%) - 1)) + '(contract (class/c) + object% + 'pos + 'neg)) (test/pos-blame 'class/c-first-order-2 @@ -4088,6 +4087,27 @@ object% 'pos 'neg)) + + (test/spec-passed + 'class/c-first-order-3 + '(contract (class/c [m (-> any/c number? number?)]) + (class object% (super-new) (define/public (m x) (add1 x))) + 'pos + 'neg)) + + (test/pos-blame + 'class/c-first-order-4 + '(contract (class/c (field [n number?])) + object% + 'pos + 'neg)) + + (test/spec-passed + 'class/c-first-order-4 + '(contract (class/c (field [n number?])) + (class object% (super-new) (field [n 3])) + 'pos + 'neg)) ; ; @@ -4109,11 +4129,38 @@ (test/spec-passed 'object/c-first-order-1 - '(let () - (define/contract o - (object/c) - (new object%)) - 1)) + '(contract (object/c) + (new object%) + 'pos + 'neg)) + + (test/pos-blame + 'object/c-first-order-2 + '(contract (object/c [m (-> any/c number? number?)]) + (new object%) + 'pos + 'neg)) + + (test/spec-passed + 'object/c-first-order-3 + '(contract (object/c [m (-> any/c number? number?)]) + (new (class object% (super-new) (define/public (m x) (add1 x)))) + 'pos + 'neg)) + + (test/pos-blame + 'object/c-first-order-4 + '(contract (object/c (field [n number?])) + (new object%) + 'pos + 'neg)) + + (test/spec-passed + 'object/c-first-order-5 + '(contract (object/c (field [n number?])) + (new (class object% (super-new) (field [n 3]))) + 'pos + 'neg)) ; ;