Date: Wed, 17 Nov 1999 10:46:35 +0100 (MET)
From: Benoit de Boursetty <debourse@email.enst.fr>
To: skaller <skaller@maxtal.com.au>
Subject: Re: What is this?
In-Reply-To: <3830BAC4.BBA190F7@maxtal.com.au>
On Tue, 16 Nov 1999, skaller wrote:
> Can anyone see this error?
> --------------------------------------------------------
> File "py_interp.ml", line 477, characters 6-545:
> This expression has type int but is here used with type unit
> ---------------------------------------------------------
> [exception SystemExit of int]
> .....
>
> method run_file filename : int =
> try
> ignore (environment # set_attr (PyString "__name__") (PyString
> "__main__"));
> ignore (environment # set_attr (PyString "__file__") (PyString
> filename));
> Py_exec_module.exec_file (self:>interpreter_t)
> (Py_exec.py_exec (self:>interpreter_t)
> (environment:>environment_t))
> filename
> ;
> 0
> with
> | SystemExit n -> n
> | x ->
> print_endline ("Error Near line " ^ (string_of_int (fst
> source_reference)));
> flush stdout;
> self#py_raise x;
> 0 (* dummy value *)
>
> -------------------------------------------------------
>
> This method is NOT called anywhere in the module.
> I cannot see where the inference engine gets the
> idea that the expression should have type unit.
>
>
> [That message is really annoying. It should read
> " .. but is used _somewhere else_ with type .."
> since it always means that. It would be nice
> to know where that somewhere else is, since half the
> time, that is where the error is]
I can't see the error, but I suggest you comment out most of the code. If
you begin with
try
0
with SystemExit n -> n
| x -> 0
and uncomment things afterwards, you can find where the problem is by
dichotomy. Since you have 6 lines of code, it shouldn't take you more than
3 tries :)
Beno=EEt de Boursetty.
This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:28 MET