On 08/21/2016 01:12 AM, Shachar Shemesh wrote:
I'll suggest an algorithmic definition of (my interpretation of) Adam's
proposal:

During static analysis, keep both the "most expanded" and the "least
expanded" type of the expression parsed so far. "Least expanded" is the
largest type actually used in the expression.

Upon use of the value, resolve which type to actually use for it. If the
use type requests a type between least and most, use that type for
evaluating the entire expression. If the use requests a type outside
that range, use the one closest (and, if the use is below the range,
complain about narrowing conversion).

If more than one use is possible (i.e. - overloading), use the largest
one applicable.

How is this different than VRP? -- Andrei

Reply via email to