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

Reply via email to