31.00 Verse Regression: Supplying a class field default value when the type of the class field is itself a class under certain conditions fails to cook

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Summary

Existing code in my codebase continues to compile in 31.00, however a specific expression now fails to cook on the backend, causing numerous errors that require administrator intervention to unstuck (existing 30.40 published island code cannot be updated as it cannot cook) It seems to be specifically related to having a field with type comparable. The existing verse behavior of supplying a class default value is not clear as to whether the default value is statically compiled or constructed dynamically on class instantiation; if it is the former it appears to be undefined behavior that you can supply a value that is not static to the static default value field.

Steps to Reproduce

Compile the following code in a fresh project.

mutable_comparable<public> := class:
    Value<public>:comparable

eventful_comparable<public> := class:
    MutableValue:mutable_comparable = mutable_comparable:
        Value := false

Expected Result

The code compiles and cooks

Observed Result

The code compiles but does not cook

Platform(s)

windows

Island Code

3191-5684-5754

Can confirm, adding this snippet throws a cook error when trying to launch the game.

The status of FORT-780506 incident has been moved from ‘Needs Triage’ to ‘Closed’. Resolution Reason: ‘Duplicate’