Mercurial > hg > octave-lyh
changeset 10030:83bb2a78c07d
improve simple assignments error checks and messages
author | Jaroslav Hajek <highegg@gmail.com> |
---|---|
date | Sat, 26 Dec 2009 14:07:50 +0100 |
parents | 3b2f81d5a6dc |
children | 8db5553c24f5 |
files | src/ChangeLog src/gripes.cc src/gripes.h src/ov-cell.cc src/ov-struct.cc src/pt-assign.cc |
diffstat | 6 files changed, 24 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,12 @@ +2009-12-26 Jaroslav Hajek <highegg@gmail.com> + + * gripes.cc (gripe_nonbraced_cs_list_assignment): New function. + * gripes.h: Declare it. + * ov-cell.cc (octave_cell::subsasgn): Use it here. + * ov-struct.cc (octave_struct::subsasgn): Also here. + * pt-idx.cc (tree_simple_assignment::rvalue1): And here. Check for + single lhs value. + 2009-12-25 Jaroslav Hajek <highegg@gmail.com> * ov-str-mat.h (octave_char_matrix_str::is_matrix_type): Remove
--- a/src/gripes.cc +++ b/src/gripes.cc @@ -272,6 +272,12 @@ } void +gripe_nonbraced_cs_list_assignment (void) +{ + error ("invalid assignment to cs-list outside multiple assignment."); +} + +void gripe_warn_complex_cmp (void) { warning_with_id ("Octave:matlab-incompatible",
--- a/src/gripes.h +++ b/src/gripes.h @@ -139,6 +139,9 @@ gripe_indexed_cs_list (void); extern OCTINTERP_API void +gripe_nonbraced_cs_list_assignment (void); + +extern OCTINTERP_API void gripe_warn_complex_cmp (void); #endif
--- a/src/ov-cell.cc +++ b/src/ov-cell.cc @@ -359,7 +359,7 @@ // Regularize a null matrix if stored into a cell. octave_base_matrix<Cell>::assign (idxf, Cell (t_rhs.storable_value ())); else if (! error_state) - error ("invalid assignment to cs-list outside multiple assignment."); + gripe_nonbraced_cs_list_assignment (); if (! error_state) {
--- a/src/ov-struct.cc +++ b/src/ov-struct.cc @@ -448,7 +448,7 @@ gripe_failed_assignment (); } else if (! error_state) - error ("invalid assignment to cs-list outside multiple assignment."); + gripe_nonbraced_cs_list_assignment (); } } else
--- a/src/pt-assign.cc +++ b/src/pt-assign.cc @@ -30,6 +30,7 @@ #include "defun.h" #include "error.h" +#include "gripes.h" #include "input.h" #include "oct-obj.h" #include "oct-lvalue.h" @@ -228,6 +229,9 @@ octave_lvalue ult = lhs->lvalue (); + if (ult.numel () != 1) + gripe_nonbraced_cs_list_assignment (); + if (! error_state) { ult.assign (etype, rhs_val);