Skip to content

Conversation

@ike709
Copy link
Collaborator

@ike709 ike709 commented Jun 16, 2025

Essentially just revives #2208 with some key differences:

  • No merge conflicts (yet)
  • Does not do as params at all. This PR is large enough as-is and I don't want to figure out the passing around procParameters mess
  • Tweaked the error message for typemaker
  • Fixed the morbillion formatting warnings
  • Fixed an NRE on compiling testgame
  • Fixed some other stuff that I forgot about between committing and writing this desc
  • Support astype() in typemaker
  • Handle ImplicitNullType for proc args

Note that passing the --skip-anything-typecheck compiler option is still strongly recommended for trying to actually use typemaker.

Also don't forget to elevate the typemaker pragmas to warnings/errors for this to actually do anything.

Future PR things:

  • alist() support
  • More unit tests
  • Revisit as params from the original PR

@boring-cyborg boring-cyborg bot added the Compiler Involves the OpenDream compiler label Jun 16, 2025
@ike709 ike709 requested a review from wixoaGit June 16, 2025 12:27

public DreamPath GetLastCommonAncestor(DMCompiler compiler, DreamPath other) {
var thisObject = compiler.DMObjectTree.GetOrCreateDMObject(this);
var otherObject = compiler.DMObjectTree.GetOrCreateDMObject(other);

Check warning

Code scanning / InspectCode

Expression is always false according to nullable reference types' annotations Warning

Expression is always false according to nullable reference types' annotations

public DreamPath GetLastCommonAncestor(DMCompiler compiler, DreamPath other) {
var thisObject = compiler.DMObjectTree.GetOrCreateDMObject(this);
var otherObject = compiler.DMObjectTree.GetOrCreateDMObject(other);

Check warning

Code scanning / InspectCode

Expression is always false according to nullable reference types' annotations Warning

Expression is always false according to nullable reference types' annotations
@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@github-actions
Copy link

github-actions bot commented Jul 4, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@wixoaGit
Copy link
Member

wixoaGit commented Aug 9, 2025

This uses quite a few hacky solutions (like DMProcBuilder.CheckBlockReturnRecursive()) that would likely be better done in other ways like with the creation of a control flow graph. I've tried adding one to this PR, but it's turning out to be a very in-depth change.

I don't think this is mergeable in its current state. It would be ideal if this could be split up into multiple PRs so the problematic changes can be worked on more effectively and the non-problematic ones can be merged in.

@ike709 ike709 marked this pull request as draft September 15, 2025 17:35
@github-actions
Copy link

github-actions bot commented Dec 1, 2025

This pull request has conflicts, please resolve those before we can evaluate the pull request.

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

Labels

Compiler Involves the OpenDream compiler Merge Conflict size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants