You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
C# requires basic constant folding for things like numeric types in order to handle correct implicit casting.
For instance byte myByte = 4 needs to be able to infer that the 4 is a byte, and not an int. Basic math operations also need to be valid here, so you need to be able to handle byte myByte = 2 + 3
Basic constant folding on built-in types is handled at the moment.
The plan to reach completion on this task is to add this handling to all extern expressions that can be considered constant. So, for example you could write:
Vector3myUpVector=Vector3.up*5;
And it would compile to a vector stored on the heap as (0, 5.0, 0) which at runtime would be compiled to a COPY from the heap constant to myUpVector
The text was updated successfully, but these errors were encountered:
The example case with "constant" properties and fields is now handled so Vector3 myUpVector = Vector3.up * 5; does now get stored as just (0, 5.0, 0). Though this handling still needs to be extended to methods taking constant operands for types like Vector and Mathf.
C# requires basic constant folding for things like numeric types in order to handle correct implicit casting.
For instance
byte myByte = 4
needs to be able to infer that the 4 is abyte
, and not anint
. Basic math operations also need to be valid here, so you need to be able to handlebyte myByte = 2 + 3
Basic constant folding on built-in types is handled at the moment.
The plan to reach completion on this task is to add this handling to all extern expressions that can be considered constant. So, for example you could write:
And it would compile to a vector stored on the heap as (0, 5.0, 0) which at runtime would be compiled to a COPY from the heap constant to
myUpVector
The text was updated successfully, but these errors were encountered: