From 6ee2b7e330751ab22c70d3abbef9e9523fa86036 Mon Sep 17 00:00:00 2001 From: dos-reis Date: Tue, 3 Jun 2008 02:23:11 +0000 Subject: * interp/define.boot (compDefineCategory): Check that a category was indeed abbreviated a category. --- src/ChangeLog | 5 +++++ src/doc/msgs/s2-us.msgs | 2 ++ src/interp/define.boot | 5 +++++ 3 files changed, 12 insertions(+) diff --git a/src/ChangeLog b/src/ChangeLog index 3052790f..28f6797a 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,8 @@ +2008-06-02 Gabriel Dos Reis + + * interp/define.boot (compDefineCategory): Check that a category + was indeed abbreviated a category. + 2008-05-29 Gabriel Dos Reis Fix AW/421. diff --git a/src/doc/msgs/s2-us.msgs b/src/doc/msgs/s2-us.msgs index 02a18fe8..4cbe5950 100644 --- a/src/doc/msgs/s2-us.msgs +++ b/src/doc/msgs/s2-us.msgs @@ -119,6 +119,8 @@ S2IC0014 The type %1bp is not branch of %2bp S2IC0015 Generated code is incorrect for %b equation %d +S2IC0016 + %1b is defined as a %2b, but was abbreviated as a %3b. S2ID0004 Cannot locate %1 for %2b . S2ID0014 diff --git a/src/interp/define.boot b/src/interp/define.boot index 959f313e..789ff2c8 100644 --- a/src/interp/define.boot +++ b/src/interp/define.boot @@ -371,6 +371,11 @@ mkConstructor form == compDefineCategory(df,m,e,prefix,fal) == $domainShell: local -- holds the category of the object being compiled $lisplibCategory: local := nil + -- since we have so many ways to say state the kind of a constructor, + -- make sure we do have some minimal internal coherence. + ctor := opOf second df + kind := getConstructorKindFromDB ctor + kind ^= "category" => throwKeyedMsg("S2IC0016",[ctor,"category",kind]) not $insideFunctorIfTrue and $LISPLIB => compDefineLisplib(df,m,e,prefix,fal,'compDefineCategory1) compDefineCategory1(df,m,e,prefix,fal) -- cgit v1.2.3