OpenDream
OpenDream copied to clipboard
Fixes writing to constants, adds readonly opendream pseudo-type, and makes var overrides respect their var's type

Fixes #738, fixes #702, and fixes #535.
Summary
This bugfix stuff comes with a refactor of DMObjectBuilder into the static class it probably should be.
As a treat, this PR also has a commit that amends Content.Test so that it actually prints the message of any unexpected runtime into the log file, instead of just declaring that there was a runtime. Should be helpful :)
Changelog
constnow works as an effective keyword, preventing writing of values, within both procs and object definitions.- Assignments now consistently remember the type of what they're assigning to (for implicit
newcalls) opendream_compiletimereadonlyis now a valid type marker. Allows for marking something as unwriteable, while also not requiring the value to be literally aconst.- Content.Test now logs the message of any unexpected runtime discovered during testing.
- Fixed statics being overridable in derived classes.
- Miscellaneous null-safety improvements!
This pull request has conflicts, please resolve those before we can evaluate the pull request.