Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
3b5cfd6
resolver: generic type arguments gate the C# interface-dispatch fan-out
pbednarcik Aug 26, 2026
3cb11cc
indexer: bump the C# extractor version for #668 and the type-arg stamps
pbednarcik Aug 26, 2026
2718f19
resolver: receiver-args cache keys the member and full interface iden…
pbednarcik Aug 27, 2026
478b350
resolver: receiver-field lookup requires the extractor's field-read e…
pbednarcik Aug 27, 2026
00b55c7
resolver: variance-declaring interfaces disarm the type-argument gate
pbednarcik Aug 27, 2026
c560f69
indexer: type-argument stamps canonicalize qualifier, verbatim, and a…
pbednarcik Aug 27, 2026
c04c0c8
resolver: project-global using aliases refuse the type-argument stamp…
pbednarcik Aug 27, 2026
1f06363
indexer: bump the C# extractor version for the revision's new stamps
pbednarcik Aug 27, 2026
12cc6af
resolver: receiver lookups read each caller's adjacency once per pass
pbednarcik Aug 27, 2026
2c8f607
indexer: collect using-alias names once per file for the type-argumen…
pbednarcik Aug 27, 2026
0a3cfe9
resolver: pin the property-receiver, transitive-implementor, and null…
pbednarcik Aug 27, 2026
e26d3ec
resolver: test the dynamic/object fold through a compilable fixture
pbednarcik Aug 27, 2026
48e5a69
indexer: derive field/property type arguments from the parsed type AST
pbednarcik Aug 27, 2026
791cb74
indexer: canonicalize identifier spellings into one comparison domain
pbednarcik Aug 27, 2026
4a3f87b
resolver: refuse stamps naming the FOLDED form of a global alias
pbednarcik Aug 27, 2026
fd1bfed
indexer: stamp type arguments on positional-record properties
pbednarcik Aug 27, 2026
080e9f6
indexer: refuse receiver_name for parameter/local-shadowed bare recei…
pbednarcik Aug 27, 2026
761b89c
indexer: bump the C# extractor version for the canonical-stamp revision
pbednarcik Aug 27, 2026
af81140
parser: drop unused csharpFieldDeclType wrapper
pbednarcik Aug 27, 2026
2e46d06
parser: scope the receiver_name shadow refusal to the declaring block
pbednarcik Aug 28, 2026
ee8255e
parser: descend a qualified base name to its final segment
pbednarcik Aug 28, 2026
1e7c59f
parser: evaluate interface variance before the duplicate-ID return
pbednarcik Aug 28, 2026
fcdc563
parser: count duplicate base targets per type ID, not per base list
pbednarcik Aug 28, 2026
71b275d
resolver: refuse a closure when a type reaches an interface twice
pbednarcik Aug 28, 2026
4d42bec
resolver: pin the qualified-spelling duplicate base end to end
pbednarcik Aug 28, 2026
52b72c1
resolver: prove field ownership before gating on field_type_args
pbednarcik Aug 28, 2026
7c4af49
parser: teach the shadow index C#'s other binding forms
pbednarcik Aug 28, 2026
cee8cb2
parser: seed the site-ambiguity index from receiverless calls too
pbednarcik Aug 28, 2026
f98686e
parser: refuse receiver evidence where two members tie on one line
pbednarcik Aug 29, 2026
5aab0f8
resolver: bucket receiver evidence by site once per caller
pbednarcik Aug 29, 2026
72c6691
parser: stop the extent climb at scope-forming ancestors, not blocks
pbednarcik Aug 29, 2026
c958f20
parser: nine more binding forms join the shadow index
pbednarcik Aug 29, 2026
82426ef
parser: an alias-spelled base entry suppresses the whole type's stamps
pbednarcik Aug 29, 2026
30c7486
parser: the read emitter asks the shadow question at its own site
pbednarcik Aug 29, 2026
072a859
parser: stamp duplicate_decl on collided type IDs; refuse such owners
pbednarcik Aug 29, 2026
b226eee
resolver: the closure walk never crosses the interface itself
pbednarcik Aug 29, 2026
269fa32
resolver: pin the arity-twin and namespace-twin collision shapes
pbednarcik Aug 29, 2026
653905a
Merge origin/main into fix/csharp-generic-dispatch-args
pbednarcik Aug 29, 2026
1f43e0e
resolver: drop an unused constant from the extension block-scope test
pbednarcik Aug 29, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion internal/indexer/extractor_version.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ var extractorVersions = map[string]int{
// "go": 2,
"c": generatedParserProjectionPolicyVersion, // generated parser projection covers all strictly detected table sizes
"php": 2, // class/interface inheritance now emits typed structural edges
"csharp": 13, // EF Core ORM facts: [Table] models_table edges, ef_config_* and ef_fluent stamps (was: receiverless calls carry arg_count / type_arg_count for #559)
"csharp": 16, // canonical-identifier domain for the type-arg stamps (escapes, verbatim, alias meta), AST-derived field/property args, positional-record stamps, shadow-aware receiver_name (was: EF Core ORM facts)
"scala": 2, // explicitly instantiated generic calls emit call edges
"go": 3, // generic instantiations are marked so indexing a func value cannot bind (was: generic calls emit call edges)
"cpp": 2, // templated and namespace-qualified calls emit call edges
Expand Down
2 changes: 1 addition & 1 deletion internal/indexer/extractor_version_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -221,7 +221,7 @@ func TestStaleLangsDetection(t *testing.T) {
}

for _, path := range []string{"src/Handler.cs", "Views/Page.razor", "Views/Page.cshtml"} {
want := policySalt + "|csharp@13"
want := policySalt + "|csharp@16"
if got := merkleSaltFor(path); got != want {
t.Errorf("C# extractor salt for %s = %q, want %q", path, got, want)
}
Expand Down
481 changes: 428 additions & 53 deletions internal/parser/languages/csharp.go

Large diffs are not rendered by default.

Loading
Loading