Commit c101751
feat(csharp): FR-013/014/015 loader validation passes (per-port fan-out)
Ports the three deferred validation passes from the TS reference into the C#
loader (ValidationPasses), clearing all 10 deferred error fixtures from the C#
conformance ledger.
- FR-013 ValidateFieldReadOnly — ERR_READONLY_ASSIGNED_PRIMARY,
ERR_READONLY_DOWNGRADE, WARN_READONLY_VALUE_OBJECT.
- FR-014 ValidateDiscriminator — ERR_DISCRIMINATOR_FIELD_NOT_FOUND,
_VALUE_DUPLICATE, _VALUE_MISSING, _VALUE_TYPE_MISMATCH (4-pass).
- FR-015 ValidateSourceParameterRef — ERR_PARAMETER_REF_ON_NON_CALLABLE_KIND
(pre-resolution), _UNRESOLVED, _NOT_VALUE_OBJECT, _PASSTHROUGH_TYPE_MISMATCH.
Wired into MetaDataLoader.Load after the FR-016 physical-name pass; each mirrors
its TS counterpart's logic + error-code/envelope contract (collect-not-throw, C#
idiom). WARN_READONLY_VALUE_OBJECT added to WarningCodes. Unlike Java, the C#
model preserves an override field's authored JsonSource, so
error-field-readonly-downgrade emits the byte-identical envelope and passes.
C# conformance: 550/550 passed, ledger cleared.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>1 parent b588175 commit c101751
4 files changed
Lines changed: 378 additions & 13 deletions
File tree
- server/csharp
- MetaObjects.Conformance.Tests
- MetaObjects
- Loader
Lines changed: 2 additions & 13 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
| 4 | + | |
| 5 | + | |
17 | 6 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
96 | 96 | | |
97 | 97 | | |
98 | 98 | | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
99 | 106 | | |
100 | 107 | | |
101 | 108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
377 | 377 | | |
378 | 378 | | |
379 | 379 | | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
| 389 | + | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
380 | 398 | | |
381 | 399 | | |
382 | 400 | | |
| |||
0 commit comments