Skip to content

Conversation

@Laboredih123
Copy link
Contributor

Fixes #473
Implements modified types by smuggling a json of the modified types all the way to createobject

please review my code thoroughly, i suck! there's probably a lot of things that can be improved!

@boring-cyborg boring-cyborg bot added Compiler Involves the OpenDream compiler Runtime Involves the OpenDream server/runtime labels Jun 18, 2025
@Laboredih123
Copy link
Contributor Author

so true github

@github-actions github-actions bot added size/L and removed size/M labels Jun 18, 2025
Copy link
Member

@wixoaGit wixoaGit left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly not a fan of the JSON solution, and it makes some things like new /datum{foo = new} impossible, but this is a fine stepping stone.

@Laboredih123
Copy link
Contributor Author

oh yeh gotta fix that too

Copy link
Collaborator

@amylizzle amylizzle left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It is generally upsetting to take expressions and smuggle them into the runtime in json format. I realise this was always going to be kinda hacky, but ew.

The modified types tests also contain atoms now, which they shouldn't anymore. Please change them to datums instead of objects.

This is behaviour that works in BYOND but not here:

/obj
	var/a = 5

/proc/RunTest()
	var/obj/o = /obj{a=6}
	ASSERT((new o).a == 6)

Seems to work good on paradise and goon though!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Compiler Involves the OpenDream compiler Runtime Involves the OpenDream server/runtime size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Modified types aren't properly implemented

3 participants