Mercurial > hg > octave-lyh
diff src/ov-class.cc @ 7972:5bf4e2c13ed8
make superiorto and inferiorto work
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 25 Jul 2008 14:25:35 -0400 |
parents | 22a18f206121 |
children | 265a821f6555 |
line wrap: on
line diff
--- a/src/ov-class.cc +++ b/src/ov-class.cc @@ -1097,15 +1097,6 @@ return built_in_class_names.find (cn) != built_in_class_names.end (); } -static void -set_class_relationship (const std::string& sup_class, - const std::string& inf_class) -{ - // FIXME - - warning ("class precedence not implemented"); -} - DEFUN (superiorto, args, , "-*- texinfo -*-\n\ @deftypefn {Built-in Function} {} superiorto (@var{class_name})\n\ @@ -1130,7 +1121,10 @@ { std::string this_class_name = fcn->name (); - set_class_relationship (this_class_name, class_name); + if (! symbol_table::set_class_relationship (this_class_name, + class_name)) + error ("superiorto: precedence already set for %s and %s", + this_class_name.c_str (), class_name.c_str ()); } else { @@ -1174,7 +1168,13 @@ { std::string this_class_name = fcn->name (); - set_class_relationship (class_name, this_class_name); + symbol_table::set_class_relationship (class_name, + this_class_name); + + if (! symbol_table::set_class_relationship (this_class_name, + class_name)) + error ("inferiorto: precedence already set for %s and %s", + this_class_name.c_str (), class_name.c_str ()); } else error ("inferiorto: cannot give user-defined class lower precedence than built-in class");