You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update CLAUDE.md with current partial file counts and validators
TypeChecker and RoslynEmitter were split into additional partial files
(.Expressions.Access, .Expressions.Literals, .Expressions.Operators)
that weren't reflected in the docs. Also adds 4 missing validators
to the ValidationPipeline list and the dogfood-run skill.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: CLAUDE.md
+7-2Lines changed: 7 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,7 +62,7 @@ The semantic phase runs multiple ordered passes. Understanding this is critical
62
62
63
63
**Pass 2 — Type Resolution** (`TypeResolver.cs`): Resolves type annotations on declarations to concrete types. Type inference provided by `TypeInferenceService` and `GenericTypeInferenceService`.
64
64
65
-
**Pass 3 — Type Checking** (`TypeChecker.cs`, split into 5 partial files: `.cs`, `.Definitions.cs`, `.Expressions.cs`, `.Statements.cs`, `.Utilities.cs`): Traverses AST, infers types, records them in `SemanticInfo`. Then runs `ValidationPipeline`. Type narrowing (e.g., `if x is not None:` narrows `T?` → `T`) is tracked via `_narrowingContext` (`TypeNarrowingContext`).
65
+
**Pass 3 — Type Checking** (`TypeChecker.cs`, split into 8 partial files: `.cs`, `.Definitions.cs`, `.Expressions.cs`, `.Expressions.Access.cs`, `.Expressions.Literals.cs`, `.Expressions.Operators.cs`, `.Statements.cs`, `.Utilities.cs`): Traverses AST, infers types, records them in `SemanticInfo`. Then runs `ValidationPipeline`. Type narrowing (e.g., `if x is not None:` narrows `T?` → `T`) is tracked via `_narrowingContext` (`TypeNarrowingContext`).
66
66
67
67
**Key registries**: `OperatorRegistry`, `ProtocolRegistry`, `BuiltinRegistry`, `ModuleRegistry`, `PrimitiveCatalog` (source of truth for primitive types and CLR mappings).
68
68
@@ -124,11 +124,15 @@ Pluggable validators implement `ISemanticValidator` with an `Order` property (lo
**Responsibility split**: TypeChecker handles type mismatches and in-progress inference. ValidationPipeline handles self-contained AST analyses that don't need active inference state.
@@ -149,7 +153,7 @@ All diagnostics use `SPY` prefix (`Diagnostics/DiagnosticCodes.cs`):
149
153
150
154
## Code Generation
151
155
152
-
The `RoslynEmitter` is split into 8 partial classes (~6,225 lines total): `RoslynEmitter.cs` (entry, name resolution), `.Expressions.cs`, `.Statements.cs`, `.TypeDeclarations.cs`, `.ClassMembers.cs`, `.CompilationUnit.cs`, `.ModuleClass.cs`, `.Operators.cs`.
156
+
The `RoslynEmitter` is split into 11 partial classes (~10,300 lines total): `RoslynEmitter.cs` (entry, name resolution), `.Expressions.cs`, `.Expressions.Access.cs`, `.Expressions.Literals.cs`, `.Expressions.Operators.cs`, `.Statements.cs`, `.TypeDeclarations.cs`, `.ClassMembers.cs`, `.CompilationUnit.cs`, `.ModuleClass.cs`, `.Operators.cs`.
153
157
154
158
**Name resolution strategy**:
155
159
- Module-level symbols → `Symbol.CodeGenInfo` (precomputed during semantic analysis)
@@ -268,6 +272,7 @@ Available in `.claude/skills/`:
268
272
|`/project:verify-python <expr>`| Run Python 3 to verify behavior before implementing |
269
273
|`/project:add-test-fixture <desc>`| Create a file-based integration test |
270
274
|`/project:dogfood-analyze [dir]`| Analyze dogfood results and classify failures by root cause |
275
+
|`/project:dogfood-run`| Run dogfooding iterations to test the Sharpy compiler |
271
276
|`/project:compiler-audit [focus]`| Run a comprehensive compiler health audit |
272
277
|`/project:verify-plan <plan.md>`| Verify a plan for accuracy and architectural soundness |
273
278
|`/project:implement-plan <plan.md>`| Implement a plan with a coordinated agent team |
0 commit comments