The full "infinity" strings were expected to be partial consumes, but
this is not the case. That has been fixed and the relevant extra tests
from that file have been added to this test suite.
Fixes#2670
- when checking the variants of a union type we will skip adding
the variants if we have an unspecialized polymorphic, hence our
union_type variants will be empty and have a count of 0
- so when checking if we violate the #no_nil error, if we are in the
unspecialized polymorphic case and there exists at least one variant
in the original variants then we should not raise this error
- test checks that we do not raise the error anymore, and that we still
detect the #no_nil error in the described circumstances
- Introduce new `Path` type and an array of build paths on the build context.
- Resolve input and output paths/files early (before parsing).
- Error early if inputs are missing or outputs are directories.
- Plumb new file path generation into linker stage instead of its adhoc method.
TODO:
- Remove more adhoc file path generation in parser and linker stage.
- Make intermediate object file generation use new path system.
- Round out and robustify Path helper functions.
Inits `o->value` in `check_expr_base_internal()` so doesn't accidentally
use last (the proc lit was being set to that of previous string)
Adds test to "tests/issues" and changes CI to use new "run" shells
Changes lb_build_if_stmt() to return null lbValue if condition is
cmpAnd, cmpOr or non-const neg and check in lb_build_if_stmt()
to avoid short circuiting if that's the case
Adds test to "tests/issues" and adds step in CI to check this dir