Gergely Buday wrote:
having the following simple code I get an error:
[gergoe@homeship sandbox]$ cat problem.ur
val foo = 2.0 +
3
[gergoe@homeship sandbox]$ urweb problem
problem.ur:2:0-2:1: Unification failure
Expression: 3
Have con: Basis.int
Need con: Basis.float
Incompatible constructors
Con 1: Basis.int
Con 2: Basis.float
As I see, line numbering starts from 1 and column numbering starts
from 0. Still, I wonder why a one character literal spans two places,
according to the compiler. Is this a bug or a feature? The same is
valid for longer identifiers, the compiler reports a range that is one
longer than it actually is.
This is the behavior I meant to implement (though I don't have a solid
story on 0-vs.-1-based numbering for the two dimensions!). Think of the
first position as pointing to the first character in question and the
second position as pointing right _after_ the last character in
question. Among other properties, this scheme makes it possible to
distinguish an empty region from a 1-character region.
_______________________________________________
Ur mailing list
[email protected]
http://www.impredicative.com/cgi-bin/mailman/listinfo/ur