fix(build): duplicate InverseBoolToVisibilityConverter after #161 + #173 - #187
Merged
Merged
Conversation
```
error CS0101: The namespace 'InterlinedList.Views' already contains a definition
for 'InverseBoolToVisibilityConverter'
error CS0111: Type 'InverseBoolToVisibilityConverter' already defines a member
called 'Convert' with the same parameter types
```
## Cause
#161 (lists schema UI) added it to `Views/ListsViewConverters.cs`; #173 (AI gating) added it to `Views/AiConverters.cs`. Same namespace, **byte-identical implementations**, different files — so git reported both `MERGEABLE` and only the compiler objected.
**Fourth break of this exact shape in this merge pass**, after:
- #183 — duplicate `ReadRetryAfter`/`ReadHeader`/`ReadIntHeader` in the `InterlinedApiClient` partial
- #185 — the contract suite's missing compile-includes
- #186 — `App.xaml.cs` calling the renamed `SessionService.Logout()`
The pattern is consistent: **parallel PRs adding same-named members to different files.** `MERGEABLE` means "no textual overlap", which is not the same as "compiles after merging". Building after every single merge is what caught all four within one merge each.
## Fix
Removed the copy in `AiConverters.cs`; `ListsViewConverters.cs` keeps it. Nothing is lost — the implementations were identical, and the AI views resolve it through namespace visibility without a `using`.
Left a comment where it was, naming the two PRs and pointing at the two files that already hold shared converters, since a "missing" converter is exactly the thing someone re-adds:
```csharp
// InverseBoolToVisibilityConverter is NOT declared here. It already exists in
// ListsViewConverters.cs, in this same InterlinedList.Views namespace...
// If you need a converter here, check ListsViewConverters.cs and
// CommonConverters.cs first.
```
## Verification
- `dotnet build -c Debug` — **green**
- `dotnet build -c Release` — **green**
Note there are now three converter homes (`ListsViewConverters.cs`, `CommonConverters.cs`, `AiConverters.cs`) plus per-view resource declarations. Consolidating them would prevent a fifth instance of this — worth a follow-up, not folded in here.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
PRBODY
fix(build): duplicate InverseBoolToVisibilityConverter after #161 + #173
main did not compile after #173 merged — CS0101 plus two CS0111s.
#161 (lists schema UI) added InverseBoolToVisibilityConverter to
Views/ListsViewConverters.cs; #173 (AI gating) added it to Views/AiConverters.cs.
Same namespace, byte-identical implementations, different files — so git
reported both MERGEABLE and only the compiler objected.
Fourth break of this exact shape in this merge pass, after #183 (duplicate
header helpers in the InterlinedApiClient partial), #185 (contract suite's
missing compile-includes) and #186 (App.xaml.cs calling the renamed
SessionService.Logout). The pattern is parallel PRs adding same-named members to
different files: MERGEABLE means "no textual overlap", not "compiles after
merging".
Removed the AiConverters.cs copy; ListsViewConverters.cs keeps it. Nothing lost —
the implementations were identical and the AI views resolve it through namespace
visibility. Left a comment naming both PRs and pointing at the existing
converter files, since a "missing" converter is what someone re-adds.
Verified: Debug and Release both build clean.
Follow-up worth doing: there are now three converter homes plus per-view
resource declarations. Consolidating would prevent a fifth instance.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
/tmp/batch.sh $(gh pr list --repo $R --state open --limit 5 --json number,headRefName --jq '.[]|select(.headRefName=="fix-duplicate-inverse-converter")|.number') 174 177