Prioritized Failing Unit Tests - 2026-03-27
Source: latest successful full unit run from .\morphc.bat build --test
Total failing unit tests: 63
Priority rule: sorted by dependency order and blast radius. Fix upper sections first; lower sections may partially self-resolve once upstream breakage is removed.
Status Update
As of 2026-03-27, the P0 band is closed.
P0:10/10tests pass in targeted reruns.- Next active repair band:
P1. - This file still preserves the original priority ordering from the last full failing run; only
P0status has been updated here.
P0 - Closed: Foundational Morph Workspace / Domain / Package Graph
These were the most central failures. They affected package discovery, manifest validation, domain resolution, and graph loading, so they could cascade into parser, lowering, codegen, VCON, and tooling failures.
Closed by:
-
aligning
MORPHLANG_MORPH_ABI_VERSION_CURRENTwith the repo's active manifest ABI -
adding the missing
Accessmorph plugin library so enabled package discovery and load order are real, not speculative -
adding a canonical disabled
Bindingpackage manifest so build discovery sees the package tree consistently -
making workspace load fail loudly on missing enabled libraries instead of silently skipping them
-
making disabled-domain filtering transitive across runtime and regular dependencies
-
moving required host codegen validation out of raw manifest parsing and into compile/REPL resolution where it belongs
-
fixing the optimizer test workspace fixture so it includes the
Typespackage and fails for the intended lowering reason -
updating the Windows-policy allowlist for legitimate host/platform infrastructure files
-
MorphPackageManifestParsesRequiredFields -
MorphFrameworkVNextUsesCanonicalMorphTomlAndGeneratedBuildDiscovery -
MorphWorkspaceLoadsLibrariesInDeterministicOrder -
MorphWorkspaceRejectsMissingDll -
DomainManifestRejectsMissingPlugins -
DomainManifestRejectsDuplicateSourceExtensions -
DomainManifestResolvesSourcePathsToDomain -
MorphLoweringOwnedSliceFailsWhenComponentIsMissing -
MorphCoreRemovesWindowsPolicyOutsideMorphPackages -
package_enablement_disables_domain_in_graph
P1 - Frontend / Semantic / VCON Correctness
These are next because they define language correctness before backend lowering even starts. If these stay broken, backend results are not trustworthy.
Parser
ParserKeepsIfExpressionAvailableWhenStatementFormDoesNotMatchParserParsesArrowLambdaAndValueOfViaExpressionForms
Semantic
SemanticResolvedSymbolsExposeKindsForDefinitionsAndReferencesSemanticProgramViewResolvesImportedSymbolsAcrossFilesSemanticDocumentSymbolsIncludeMorphOwnedShaderDeclarationsSemanticTypeMemberLookupExposesClassMembersSemanticAcceptsEnumInterfaceStructAndDictionaryTypeSemanticAllowsPluginOwnedGraphicsGoldenSnapshotsInsideTestBlockSemanticInputGenericAcceptsEnumUsageSemanticInputGenericRejectsSecretForEnumTypeSemanticCanvasOnFrameAcceptsTypedGraphicsV2CommandsSemanticRejectsFloatLiteralReturnedFromIntMethod
VCON
VconDomainRoutingResolvesNativeSourceFileVconDomainRoutingResolvesProjectByRegisteredMainFileVconDomainRoutingRejectsAmbiguousProjectMainFilesVconVmRunsSimpleProgramVconVmRunsSuccessfulNullableCastProgramVconVmRejectsInvalidRequiredCastProgramVconVmAllowsInvalidNullableCastProgram
P2 - Lowering / Optimization / LLVM Backend
These are downstream from P0 and P1 but still core compiler functionality. Once workspace and semantic stability return, this is the next highest-value repair band.
NIR / Optimizer
NirLowersPluginOwnedGraphicsGoldenSnapshotsInsideTestBlockNirLowersInputEnumChainIntoBuiltinCallNirPreservesExplicitDynamicStorageTypeNirEmitsCastInstructionForCastPipelineNirLowersDescriptorFieldAssignmentsToMaterialSetCallsOptimizerPropagatesConstantsToReturn
LLVM Codegen
LLVMCodegenCarriesMorphRouteResultsIntoLegacyConsumersLLVMCodegenEmitsMorphInputBackendRouteFromMirWithoutBackingNirLLVMCodegenEmitsMorphAddBackendRouteFromMirWithoutBackingNirLLVMCodegenEmitsMorphTensorRandomBackendRouteFromMirWithoutBackingNirLLVMCodegenEmitsMorphTensorFusionBackendRouteFromMirWithoutBackingNirLLVMCodegenLowersTensorRandomToShapedRuntimeCallLLVMCodegenLowersRegisteredFusionBuiltinCallLLVMCodegenLowersGraphicsV2TypedCallsToRuntimeLLVMCodegenLowersScene2DCallsToRuntimeLLVMCodegenLowersScene3DCallsToRuntimeLLVMCodegenLowersMeshBuilderCallsToRuntimeLLVMCodegenLowersSmartInputIntCallToRuntimeLLVMCodegenLowersSmartInputStringCallToRuntimeLLVMCodegenLowersSmartInputEnumCallToRuntime
P3 - Tooling / Diagnostics / UX / Policy Guards
These still matter, but they are lower priority than the compiler pipeline itself. Some may clear up automatically after P0-P2.
LSP / Diagnostic Localization
DiagnosticFixRegistryProvidesUnusedBindingFixFromMetadataFixIdDiagnosticLocalizerLoadsLocalizedCatalogEntriesDocumentManagerLocalizesDiagnosticsUsingResolvedLanguageDiagnosticLocalizerRendersTemplateArgumentsFromCatalogDiagnosticLocalizerRendersUnknownIdentifierTemplateArgumentsDiagnosticLocalizerAttachesCatalogMetadataToRenderedDiagnosticsDiagnosticEnginePrintsLocalizedCliDiagnosticsDiagnosticEngineRendersParserTemplatesWithoutRawEnglishTailDiagnosticEngineRendersSemanticTemplatesWithoutRawEnglishTailDiagnosticEngineRendersUnknownIdentifierTemplatesWithoutFallback
REPL / Build Pipeline / Repo Guard
InterPluginIncludeLeakInventoryHasNotGrownReplPipelineSuppressesBareInputReplayAndEchoesCurrentValueReplPipelineDefaultsGenericlessInputToStringAndQuotesEchoWebBuildPipelinePassesGraphicsShaderOptionsAndRuntimeSources
Recommended Execution Order
- Fix all
P0failures. - Re-run full tests.
- Fix
P1. - Re-run full tests.
- Fix
P2. - Re-run full tests.
- Clean up remaining
P3failures last.