Second R7b port, checklist-first recipe (docs/design/csharp-kernel-port-checklist.md; parity passed FIRST RUN again). No grammar bump — the #717 vendored wasm verified table-identical to crate 0.23.5 (ABI 15, STATE_COUNT 8053, node-kind + field tables); first port with no grammar-prep step. The #237 #if-blanking preParse stays TS-side via the existing route-point hoist. Walker preserves bug-for-bug: the single-namespace-node quirks (second namespace nests under the first, nested namespaces leave no trace, import refs hang off the namespace node), raw member-access callee texts (this./base./literal receivers, multi-line fluent chains) with unconditional chain re-encode, deliberate emission holes (property accessor/expression bodies, ctor initializers, delegates/events/ operators/indexers/local functions, top-level locals), garbage extends refs ((repo) primary-ctor args, BaseDto(Name) record bases, enum : byte), the alias- import moduleName quirks, nameof-as-call, CSHARP fn-ref spec (+= subscription, this.X bare-name form, argument layer, initializer lists), C# type-ref engine (nested-generic returnType failure included), and value-ref shadow pruning. Gates: sweeps 0-diff serilog 211/216 / Newtonsoft.Json 914/945 / jellyfin 2104/2105 (deferrals match the survey's per-repo predictions — both-arm #if damage; default --max-deferral 0.1 holds, no c/cpp exemption); full-init dumps byte-identical ×3 (14.0k/109.1k/210.8k lines); kernel-csharp-parity suite (torture ×3 + CRLF variants + 8 micro-pins + defer) + csharp grammar-parity row; full suite 2,608 ×2 under CODEGRAPH_KERNEL_EXPECT=1. DEFAULT_ROUTED += csharp (11 langs). Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
25 lines
596 B
C#
25 lines
596 B
C#
using Coll = System.Collections.Generic.Dictionary<string, int>;
|
|
using Short = SomeType;
|
|
using System;
|
|
|
|
namespace Torture.Scoped;
|
|
|
|
/// <summary>A positional record with base args.</summary>
|
|
public record UserDto(string Name, int Age) : BaseDto(Name), IThing;
|
|
|
|
public readonly record struct Money(decimal Amount);
|
|
|
|
public record struct Pointish(int X, int Y);
|
|
|
|
public record Empty;
|
|
|
|
public record Bodied(string Label) : BaseDto(Label)
|
|
{
|
|
public string Loud() { return Shout(Label); }
|
|
}
|
|
|
|
public class Svc(IRepo repo, ICache cache) : Base(repo), IThing
|
|
{
|
|
public void Go() { repo.Save(1); }
|
|
}
|