[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Variables with same name as functions. trouble!
From: |
Joao Cardoso |
Subject: |
Re: Variables with same name as functions. trouble! |
Date: |
Thu, 21 Oct 1999 17:13:47 +0100 |
"John W. Eaton" wrote:
> On 20-Oct-1999, Joao Cardoso <address@hidden> wrote:
>
> | I spent several hours (dummy!) debugging some old scripts where it
> | happened that I used variables with the same name as script/builtin
> | functions. The error message is cryptic, and does not point to the
> | correct source line where the problem is. Of course this is a (bad)
> | programmer issue, but I suggest that, whenever a function name is
> | overwritten with a variable, a warning message be output.
> |
> | The following script illustrate the problem:
> |
> | function po
> |
> | error=[1,2,3];
> | error("This is an error!\n")
> |
> | endfunction
> |
> | octave:76> po
> | error: string type invalid as index value
> | error: called from `po' in file `/u/qual/src/misc/po.m'
> |
> | If the script where several dozen lines long, it would be difficult to
> | find the problem...
> |
> | With the 582 script files in the standard octave-2.1.14 distribution it
> | is easy to make such a mistake.
>
> OK, how about this, which I just put in the bleeding-edge sources?
>
> octave:1> variables_can_hide_functions = 0;
> octave:2> error = 2
> error: variable `error' hides function
> error: evaluating assignment expression near line 2, column 7
> octave:2> variables_can_hide_functions = "warn";
> octave:3> error = 2
> warning: variable `error' hides function
> error = 2
> octave:4> clear error
> octave:5> error
> error: unspecified error
> octave:5> variables_can_hide_functions = 1;
> octave:6> error = 2
> error = 2
>
> It will also tell you if an assignment will hide an .m or .oct file
> that defines a function.
>
> The default value for the new variable is 1, for backward
> compatibility.
Thats fine. Thanks!
Joao
>
>
> jwe
--
Joao Cardoso | e-mail: address@hidden
INESC, R. Jose Falcao 110 | tel: + 351 2 2094322
4050 Porto, Portugal | fax: + 351 2 2008487
---------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL. To ensure
that development continues, see www.che.wisc.edu/octave/giftform.html
Instructions for unsubscribing: www.che.wisc.edu/octave/archive.html
---------------------------------------------------------------------