test MemberWithoutKeyIsReported passed
verified · facts.json tests.fail_without_fix: passed (new test)
Cited by claude on REQ-2234-F1, claude:C1
Test SuppressSourceGenerationAnalyzerTests.MemberWithoutKeyIsReported, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test MemberTypeMustBeMessagePackObjectIsReported passed
verified · facts.json tests.fail_without_fix: passed (new test)
Cited by claude on REQ-2234-F1
Test SuppressSourceGenerationAnalyzerTests.MemberTypeMustBeMessagePackObjectIsReported, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test AllowPrivateRequiredIsReported passed
verified · facts.json tests.fail_without_fix: passed (new test)
Cited by claude on REQ-2234-F1
Test SuppressSourceGenerationAnalyzerTests.AllowPrivateRequiredIsReported, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test DuplicateIntKeysAreReportedWithoutAnalyzerFailure failed
verified · facts.json tests.fail_without_fix: failed (new test)
Cited by claude on REQ-2234-F1, nemotron on REQ-2234-F1, nemotron on REQ-2234-N2
Test SuppressSourceGenerationAnalyzerTests.DuplicateIntKeysAreReportedWithoutAnalyzerFailure, cited as failed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
test DuplicateIntKeysAreReportedWithoutAnalyzerFailure passed
verified · facts.json tests.targeted: passed (new test)
Cited by claude on REQ-2234-F1, codex on REQ-2234-F1, nemotron on REQ-2234-F1, nemotron on REQ-2234-N1, nemotron:N1
Test SuppressSourceGenerationAnalyzerTests.DuplicateIntKeysAreReportedWithoutAnalyzerFailure, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
test MixedKeyKindsAreReportedWithoutAnalyzerFailure passed
verified · facts.json tests.targeted: passed (new test)
Cited by claude on REQ-2234-F1, codex on REQ-2234-F1, nemotron on REQ-2234-F1, nemotron on REQ-2234-N1
Test SuppressSourceGenerationAnalyzerTests.MixedKeyKindsAreReportedWithoutAnalyzerFailure, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
TypeCollector.cs:1023 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1023 at head 9007cee1
Cited by claude on REQ-2234-F1, codex on REQ-2234-F1, nemotron on REQ-2234-F1, claude:C4
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1020{1021 DeclaringType = GetDeclaringTypeIfColliding(item),1022};1023if (!intMembers.ContainsKey(member.IntKey))1024{1025 intMembers.Add(member.IntKey, (member, item.Type));1026}Quoted: if (!intMembers.ContainsKey(member.IntKey))
Back to the evidence
TypeCollector.cs:1008 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1008 at head 9007cee1
Cited by claude on REQ-2234-F1
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1005 if ((isIntKey && intKey == null) || (!isIntKey && stringKey == null))1006 {1007 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.DoNotMixStringAndIntKeys, item.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax().GetLocation()));1008 continue; // The key kind does not match the other members; the diagnostic is reported, so skip this member.1009 }1010}1011Quoted: continue; // The key kind does not match the other members
Back to the evidence
check tests.fail_without_fix
verified · facts.json: tests.fail_without_fix pass: new tests fail on base source: 4/8 failed -> tests do cover the change (4 new tests pass without the fix)
Cited by claude on REQ-2234-F1, codex on REQ-2234-F1, codex on REQ-2234-F2, claude on REQ-2234-N2, codex on REQ-2234-N2
tests.fail_without_fix pass: new tests fail on base source: 4/8 failed -> tests do cover the change (4 new tests pass without the fix)
dotnet test (source reverted, tests kept) 8.0.402
log: evidence/2234/logs/tests_fail_without_fix.1.log
Back to the evidence
REQ-2234-F1 text
verified · REQ-2234-F1 text contains the quote
Cited by nemotron on REQ-2234-F1
The analyzer must report contract diagnostics (e.g. missing [Key], duplicate keys, mixed key kinds) for [MessagePackObject(SuppressSourceGeneration = true)] types, as it did in version 3.1.0.
Back to the evidence
TypeCollector.cs:1008 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1008 at head 9007cee1
Cited by nemotron on REQ-2234-F1, claude:C3
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1005 if ((isIntKey && intKey == null) || (!isIntKey && stringKey == null))1006 {1007 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.DoNotMixStringAndIntKeys, item.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax().GetLocation()));1008 continue; // The key kind does not match the other members; the diagnostic is reported, so skip this member.1009 }1010}1011Quoted: continue; // The key kind does not match the other members; the diagnostic is reported, so skip this member.
Back to the evidence
TypeCollector.cs:1039 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1039 at head 9007cee1
Cited by nemotron on REQ-2234-F1
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1036{1037 DeclaringType = GetDeclaringTypeIfColliding(item),1038};1039if (!stringMembers.ContainsKey(member.StringKey))1040{1041 stringMembers.Add(member.StringKey, (member, item.Type));1042}Quoted: if (!stringMembers.ContainsKey(member.StringKey))
Back to the evidence
test MemberWithoutKeyIsReported passed
verified · facts.json tests.targeted: passed (new test)
Cited by nemotron on REQ-2234-F1
Test SuppressSourceGenerationAnalyzerTests.MemberWithoutKeyIsReported, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test AllowPrivateRequiredIsReported passed
verified · facts.json tests.targeted: passed (new test)
Cited by nemotron on REQ-2234-F1
Test SuppressSourceGenerationAnalyzerTests.AllowPrivateRequiredIsReported, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test MemberTypeMustBeMessagePackObjectIsReported passed
verified · facts.json tests.targeted: passed (new test)
Cited by nemotron on REQ-2234-F1
Test SuppressSourceGenerationAnalyzerTests.MemberTypeMustBeMessagePackObjectIsReported, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test DuplicateStringKeysAreReportedWithoutAnalyzerFailure passed
verified · facts.json tests.targeted: passed (new test)
Cited by nemotron on REQ-2234-F1, claude on REQ-2234-N1, codex on REQ-2234-N1, nemotron on REQ-2234-N1
Test SuppressSourceGenerationAnalyzerTests.DuplicateStringKeysAreReportedWithoutAnalyzerFailure, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
check tests.fail_without_fix pass
verified · facts.json: tests.fail_without_fix pass: new tests fail on base source: 4/8 failed -> tests do cover the change (4 new tests pass without the fix)
Cited by nemotron on REQ-2234-F1, nemotron on REQ-2234-N2
tests.fail_without_fix pass: new tests fail on base source: 4/8 failed -> tests do cover the change (4 new tests pass without the fix)
dotnet test (source reverted, tests kept) 8.0.402
log: evidence/2234/logs/tests_fail_without_fix.1.log
Back to the evidence
test MixedKeyKindsAreReportedWithoutAnalyzerFailure failed
verified · facts.json tests.fail_without_fix: failed (new test)
Cited by nemotron on REQ-2234-F1, claude on REQ-2234-N2, nemotron on REQ-2234-N2
Test SuppressSourceGenerationAnalyzerTests.MixedKeyKindsAreReportedWithoutAnalyzerFailure, cited as failed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
test SourceGenerationOnlyDiagnosticsAreNotReportedWhenSuppressed passed
verified · facts.json tests.fail_without_fix: passed (new test)
Cited by claude on REQ-2234-F2, nemotron on REQ-2234-F2
Test SuppressSourceGenerationAnalyzerTests.SourceGenerationOnlyDiagnosticsAreNotReportedWhenSuppressed, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
test SourceGenerationOnlyDiagnosticsAreNotReportedWhenSuppressed passed
verified · facts.json tests.targeted: passed (new test)
Cited by claude on REQ-2234-F2, codex on REQ-2234-F2, nemotron on REQ-2234-F2
Test SuppressSourceGenerationAnalyzerTests.SourceGenerationOnlyDiagnosticsAreNotReportedWhenSuppressed, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - passed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
TypeCollector.cs:1383 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1383 at head 9007cee1; context only, not counted: line 1383 of src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs is not a line this change touched (added at head)
Cited by claude on REQ-2234-F2, nemotron on REQ-2234-F2
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1380}13811382// Do not source generate the formatter for this type if the attribute opted out.1383if (suppressSourceGeneration is true)1384{1385 // Skip any source generation1386 return null;Quoted: if (suppressSourceGeneration is true)
Back to the evidence
TypeCollector.cs:1407 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1407 at head 9007cee1; context only, not counted: line 1407 of src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs is not a line this change touched (added at head)
Cited by claude on REQ-2234-F2
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1404 BaseTypeDeclarationSyntax? targetType = formattedType.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax() as BaseTypeDeclarationSyntax;1405 Location? primaryLocation = targetType?.Identifier.GetLocation();1406 Location[]? addlLocations = nonPartialTypes.Where(t => t != targetType).Select(t => t.Identifier.GetLocation()).ToArray();1407 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.PartialTypeRequired, primaryLocation, (IEnumerable<Location>?)addlLocations));1408 anyNonPartialTypesFound = true;1409}1410
Quoted: MsgPack00xMessagePackAnalyzer.PartialTypeRequired, primaryLocation
Back to the evidence
TypeCollector.cs:989 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:989 at head 9007cee1; context only, not counted: line 989 of src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs is not a line this change touched (added at head)
Cited by claude on REQ-2234-F2
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
986}987988// A property with an init accessor and an initializer has a default that will be discarded by the deserializer.989if (suppressSourceGeneration is not true && isInitOnly)990{991 EqualsValueClauseSyntax? initializer = item.DeclaringSyntaxReferences.Select(s => (s.GetSyntax(this.cancellationToken) as PropertyDeclarationSyntax)?.Initializer).FirstOrDefault(i => i is not null);992 if (initializer is not null)Quoted: if (suppressSourceGeneration is not true && isInitOnly)
Back to the evidence
REQ-2234-F2 text
verified · REQ-2234-F2 text contains the quote
Cited by nemotron on REQ-2234-F2
Diagnostics that only apply when a formatter is generated (partial-class requirement, AOT-only checks) must not be reported for types with SuppressSourceGeneration = true.
Back to the evidence
TypeCollector.cs:1386 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1386 at head 9007cee1; context only, not counted: the quote is too short to point at anything (fewer than 12 non-space characters or no identifier)
Cited by nemotron on REQ-2234-F2
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1383if (suppressSourceGeneration is true)1384{1385 // Skip any source generation1386 return null;1387}13881389// If any property had a private setter and does not appear in the deserializing constructor signature,Quoted: return null;
Back to the evidence
TypeCollector.cs:985 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:985 at head 9007cee1; context only, not counted: line 985 of src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs is not a line this change touched (added at head)
Cited by claude on REQ-2234-N1
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
982var stringKey = key is { Value: string stringKeyValue } ? stringKeyValue : default;983if (intKey == null && stringKey == null)984{985 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.BothStringAndIntKeyAreNull, ((PropertyDeclarationSyntax)item.DeclaringSyntaxReferences[0].GetSyntax()).Identifier.GetLocation(), formattedType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), item.Name));986}987988// A property with an init accessor and an initializer has a default that will be discarded by the deserializer.Quoted: ((PropertyDeclarationSyntax)item.DeclaringSyntaxReferences[0].GetSyntax()).Identifier.GetLocation()
Back to the evidence
check tests.full_suite
verified · facts.json: tests.full_suite pass: tests/MessagePack.SourceGenerator.Tests: 175 tests, 175 passed, 0 failed (0 not failing on base, 0 also failing on base)
Cited by claude on REQ-2234-N1, codex on REQ-2234-N1, claude on REQ-2234-N2, codex on REQ-2234-N2
tests.full_suite pass: tests/MessagePack.SourceGenerator.Tests: 175 tests, 175 passed, 0 failed (0 not failing on base, 0 also failing on base)
dotnet test 8.0.402
log: evidence/2234/logs/tests_full_suite.log
Back to the evidence
REQ-2234-N1 text
verified · REQ-2234-N1 text contains the quote
Cited by claude on REQ-2234-N1
The analyzer and generator must not crash on invalid contracts (e.g. duplicate keys) in such types.
Back to the evidence
REQ-2234-N1 text
verified · REQ-2234-N1 text contains the quote
Cited by nemotron on REQ-2234-N1
The analyzer and generator must not crash on invalid contracts (e.g. duplicate keys) in such types.
Back to the evidence
check tests.full_suite pass
verified · facts.json: tests.full_suite pass: tests/MessagePack.SourceGenerator.Tests: 175 tests, 175 passed, 0 failed (0 not failing on base, 0 also failing on base)
Cited by nemotron on REQ-2234-N1, nemotron on REQ-2234-N2
tests.full_suite pass: tests/MessagePack.SourceGenerator.Tests: 175 tests, 175 passed, 0 failed (0 not failing on base, 0 also failing on base)
dotnet test 8.0.402
log: evidence/2234/logs/tests_full_suite.log
Back to the evidence
check tests.execution_full_suite
verified · facts.json: tests.execution_full_suite pass: tests/MessagePack.SourceGenerator.ExecutionTests: 16/16 passed (base 14/14), 0 failures not on base; tests/MessagePack.SourceGenerator.MapModeExecutionTests: 22/22 passed (base 20/20), 0 failures not on base
Cited by claude on REQ-2234-N2
tests.execution_full_suite pass: tests/MessagePack.SourceGenerator.ExecutionTests: 16/16 passed (base 14/14), 0 failures not on base; tests/MessagePack.SourceGenerator.MapModeExecutionTests: 22/22 passed (base 20/20), 0 failures not on base
dotnet test (whole ExecutionTests, MapModeExecutionTests) vs base 9.0.321
log: evidence/2234/logs/execution.ExecutionTests.full.log
log: evidence/2234/logs/execution.MapModeExecutionTests.full.log
Back to the evidence
check tests.execution_fail_without_fix
verified · facts.json: tests.execution_fail_without_fix fail: new runtime tests pass on base source: 0/4 failed -> these runtime tests do NOT demonstrate the change (runtime behaviour they check is identical with and without the fix)
Cited by claude on REQ-2234-N2
tests.execution_fail_without_fix fail: new runtime tests pass on base source: 0/4 failed -> these runtime tests do NOT demonstrate the change (runtime behaviour they check is identical with and without the fix)
dotnet test (source reverted, tests kept) - ExecutionTests 9.0.321
log: evidence/2234/logs/execution_fail_without_fix.ExecutionTests.build.log
log: evidence/2234/logs/execution_fail_without_fix.ExecutionTests.targeted.log
log: evidence/2234/logs/execution_fail_without_fix.ExecutionTests.full.log
log: evidence/2234/logs/execution_fail_without_fix.MapModeExecutionTests.build.log
log: evidence/2234/logs/execution_fail_without_fix.MapModeExecutionTests.targeted.log
log: evidence/2234/logs/execution_fail_without_fix.MapModeExecutionTests.full.log
Back to the evidence
test DuplicateStringKeysAreReportedWithoutAnalyzerFailure failed
verified · facts.json tests.fail_without_fix: failed (new test)
Cited by claude on REQ-2234-N2, nemotron on REQ-2234-N2
Test SuppressSourceGenerationAnalyzerTests.DuplicateStringKeysAreReportedWithoutAnalyzerFailure, cited as failed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
test SuppressedTypeRoundTripsThroughDynamicResolver passed
verified · facts.json tests.execution_fail_without_fix: passed (new test)
Cited by claude on REQ-2234-N2
Test SuppressedSourceGenerationTests.SuppressedTypeRoundTripsThroughDynamicResolver, cited as passed. Runs:
- passed on change head (
tests.targeted.execution, tests/MessagePack.SourceGenerator.ExecutionTests)
evidence/2234/logs/execution.ExecutionTests.build.log - passed on change head (
tests.targeted.execution, tests/MessagePack.SourceGenerator.MapModeExecutionTests)
evidence/2234/logs/execution.ExecutionTests.build.log - passed on source reverted, tests kept (without the fix) (
tests.execution_fail_without_fix, tests/MessagePack.SourceGenerator.ExecutionTests)
evidence/2234/logs/execution_fail_without_fix.ExecutionTests.build.log - passed on source reverted, tests kept (without the fix) (
tests.execution_fail_without_fix, tests/MessagePack.SourceGenerator.MapModeExecutionTests)
evidence/2234/logs/execution_fail_without_fix.ExecutionTests.build.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
REQ-2234-N2 text
verified · REQ-2234-N2 text contains the quote
Cited by nemotron on REQ-2234-N2
The fix is covered by automated tests that fail without it; no regressions in the existing test suite.
Back to the evidence
test DuplicateKeysAreReportedWithoutAnalyzerFailureForGeneratedTypes failed
verified · facts.json tests.fail_without_fix: failed (new test)
Cited by nemotron on REQ-2234-N2, claude:C1
Test SuppressSourceGenerationAnalyzerTests.DuplicateKeysAreReportedWithoutAnalyzerFailureForGeneratedTypes, cited as failed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
TypeCollector.cs:723 @8373710f
not verified · evidence must cite head or base, not '8373710fb0ae4bb453737f773b930401d8500c31'
Cited by claude:C1
Quoted: if (suppressSourceGeneration is true)
Back to the evidence
TypeCollector.cs:1369 @base
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1369 at base 32258fdb
Cited by claude:C1
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ base 32258fdb
1366}13671368// Do not source generate the formatter for this type if the attribute opted out.1369if (suppressSourceGeneration is true)1370{1371 // Skip any source generation1372 return null;Quoted: if (suppressSourceGeneration is true)
Back to the evidence
issue 2234
not verified · issue text cannot be verified offline (not counted as evidence)
Cited by claude:C1
https://github.com/MessagePack-CSharp/MessagePack-CSharp/issues/2234
Back to the evidence
TypeCollector.cs:985 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:985 at head 9007cee1
Cited by claude:C2
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
982var stringKey = key is { Value: string stringKeyValue } ? stringKeyValue : default;983if (intKey == null && stringKey == null)984{985 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.BothStringAndIntKeyAreNull, ((PropertyDeclarationSyntax)item.DeclaringSyntaxReferences[0].GetSyntax()).Identifier.GetLocation(), formattedType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), item.Name));986}987988// A property with an init accessor and an initializer has a default that will be discarded by the deserializer.Quoted: (PropertyDeclarationSyntax)item.DeclaringSyntaxReferences[0].GetSyntax()
Back to the evidence
test DuplicateKeysAreReportedWithoutAnalyzerFailureForGeneratedTypes passed
verified · facts.json tests.targeted: passed (new test)
Cited by claude:C4
Test SuppressSourceGenerationAnalyzerTests.DuplicateKeysAreReportedWithoutAnalyzerFailureForGeneratedTypes, cited as passed. Runs:
- passed on change head (
tests.targeted)
evidence/2234/logs/tests_targeted.1.log - failed on source reverted, tests kept (without the fix) (
tests.fail_without_fix)
evidence/2234/logs/tests_fail_without_fix.1.log
Without the fix it failed: so it tests the change.
Back to the evidence
TypeCollector.cs:1014 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1014 at head 9007cee1
Cited by nemotron:N1
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
10111012if (isIntKey)1013{1014 if (intMembers.ContainsKey(intKey!.Value))1015 {1016 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.KeysMustBeUnique, item.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax().GetLocation()));1017 }Quoted: if (intMembers.ContainsKey(intKey!.Value))
Back to the evidence
TypeCollector.cs:1016 @head
verified · quote matches src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs:1016 at head 9007cee1
Cited by nemotron:N1
src/MessagePack.SourceGenerator/CodeAnalysis/TypeCollector.cs @ head 9007cee1
1013{1014 if (intMembers.ContainsKey(intKey!.Value))1015 {1016 this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.KeysMustBeUnique, item.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax().GetLocation()));1017 }10181019 var member = new MemberSerializationInfo(true, isWritable, isReadable, isInitOnly, item.IsRequired, intKey!.Value, item.Name, item.Name, item.Type.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat), item.Type.ToDisplayString(BinaryWriteFormat), specialFormatter)Quoted: this.reportDiagnostic?.Invoke(Diagnostic.Create(MsgPack00xMessagePackAnalyzer.KeysMustBeUnique, item.DeclaringSyntaxReferences.FirstOrDefault()?.GetSyntax().GetLocation()));
Back to the evidence
check tests.execution_full_suite pass
verified · facts.json: tests.execution_full_suite pass: tests/MessagePack.SourceGenerator.ExecutionTests: 16/16 passed (base 14/14), 0 failures not on base; tests/MessagePack.SourceGenerator.MapModeExecutionTests: 22/22 passed (base 20/20), 0 failures not on base
Cited by nemotron:N2
tests.execution_full_suite pass: tests/MessagePack.SourceGenerator.ExecutionTests: 16/16 passed (base 14/14), 0 failures not on base; tests/MessagePack.SourceGenerator.MapModeExecutionTests: 22/22 passed (base 20/20), 0 failures not on base
dotnet test (whole ExecutionTests, MapModeExecutionTests) vs base 9.0.321
log: evidence/2234/logs/execution.ExecutionTests.full.log
log: evidence/2234/logs/execution.MapModeExecutionTests.full.log
Back to the evidence
SuppressedSourceGenerationTests.cs:9 @head
verified · quote matches tests/MessagePack.SourceGenerator.ExecutionTests/SuppressedSourceGenerationTests.cs:9 at head 9007cee1
Cited by nemotron:N2
tests/MessagePack.SourceGenerator.ExecutionTests/SuppressedSourceGenerationTests.cs @ head 9007cee1
6/// It must still serialize correctly through the run-time (dynamic) resolver.7/// </summary>8[MessagePackObject(SuppressSourceGeneration = true)]9public class SuppressedSourceGenerationType10{11 [Key(0)]12 public int Id { get; set; }Quoted: public class SuppressedSourceGenerationType
Back to the evidence
SuppressedSourceGenerationTests.cs:18 @head
verified · quote matches tests/MessagePack.SourceGenerator.ExecutionTests/SuppressedSourceGenerationTests.cs:18 at head 9007cee1
Cited by nemotron:N2
tests/MessagePack.SourceGenerator.ExecutionTests/SuppressedSourceGenerationTests.cs @ head 9007cee1
15 public string Name { get; set; } = string.Empty;16}1718public class SuppressedSourceGenerationTests19{20 [Fact]21 public void NoFormatterIsGeneratedForSuppressedType()Quoted: public class SuppressedSourceGenerationTests
Back to the evidence
check tests.execution_fail_without_fix fail
verified · facts.json: tests.execution_fail_without_fix fail: new runtime tests pass on base source: 0/4 failed -> these runtime tests do NOT demonstrate the change (runtime behaviour they check is identical with and without the fix)
Cited by nemotron:N3, nemotron:N5
tests.execution_fail_without_fix fail: new runtime tests pass on base source: 0/4 failed -> these runtime tests do NOT demonstrate the change (runtime behaviour they check is identical with and without the fix)
dotnet test (source reverted, tests kept) - ExecutionTests 9.0.321
log: evidence/2234/logs/execution_fail_without_fix.ExecutionTests.build.log
log: evidence/2234/logs/execution_fail_without_fix.ExecutionTests.targeted.log
log: evidence/2234/logs/execution_fail_without_fix.ExecutionTests.full.log
log: evidence/2234/logs/execution_fail_without_fix.MapModeExecutionTests.build.log
log: evidence/2234/logs/execution_fail_without_fix.MapModeExecutionTests.targeted.log
log: evidence/2234/logs/execution_fail_without_fix.MapModeExecutionTests.full.log
Back to the evidence
test NoFormatterIsGeneratedForSuppressedType passed
verified · facts.json tests.execution_fail_without_fix: passed (new test)
Cited by nemotron:N3
Test SuppressedSourceGenerationTests.NoFormatterIsGeneratedForSuppressedType, cited as passed. Runs:
- passed on change head (
tests.targeted.execution, tests/MessagePack.SourceGenerator.ExecutionTests)
evidence/2234/logs/execution.ExecutionTests.build.log - passed on change head (
tests.targeted.execution, tests/MessagePack.SourceGenerator.MapModeExecutionTests)
evidence/2234/logs/execution.ExecutionTests.build.log - passed on source reverted, tests kept (without the fix) (
tests.execution_fail_without_fix, tests/MessagePack.SourceGenerator.ExecutionTests)
evidence/2234/logs/execution_fail_without_fix.ExecutionTests.build.log - passed on source reverted, tests kept (without the fix) (
tests.execution_fail_without_fix, tests/MessagePack.SourceGenerator.MapModeExecutionTests)
evidence/2234/logs/execution_fail_without_fix.ExecutionTests.build.log
Without the fix it passed: so it shows existing behaviour, not the change.
Back to the evidence
README.md:1620 @head
not verified · quote not on README.md:1620 ±3 at head; it does occur at line 1625, outside tolerance
Cited by nemotron:N4
README.md @ head 9007cee1
1617> Note: When using Unity, dynamic code generation only works when targeting .NET Framework 4.x + mono runtime.1618For all other Unity targets, AOT is required.16191620### Opting out of source generation16211622A `[MessagePackObject]` type can opt out of source generation with `[MessagePackObject(SuppressSourceGeneration = true)]`.1623No formatter is generated for that type. It is serialized at run time by the dynamic resolvers, which use reflection, so such a type is not AOT-safe.
Quoted: The analyzer still validates these types, because they are serialized at run time and must still have a valid contract:
Back to the evidence
README.md:1634 @head
verified · quote matches README.md:1634 at head 9007cee1 (found at line 1632, 2 off)
Cited by nemotron:N4
README.md @ head 9007cee1
1629- Members have types that are themselves serializable ([MsgPack003](doc/analyzers/MsgPack003.md)).1630- Types are accessible to the resolver ([MsgPack012](doc/analyzers/MsgPack012.md)).16311632The analyzer does not report the partial-class requirement ([MsgPack011](doc/analyzers/MsgPack011.md)) or the AOT-only checks ([MsgPack016](doc/analyzers/MsgPack016.md) and [MsgPack017](doc/analyzers/MsgPack017.md)) for these types, because they only apply when a formatter is generated.16331634### Customizations1635
Quoted: The analyzer does not report the partial-class requirement ([MsgPack011](doc/analyzers/MsgPack011.md)) or the AOT-only checks ([MsgPack016](doc/analyzers/MsgPack016.md) and [MsgPack017](doc/analyzers/MsgPack017.md)) for these types, because they only apply when a formatter is generated.
Back to the evidence
SuppressedSourceGenerationTests.cs:1 @head
verified · quote matches tests/MessagePack.SourceGenerator.ExecutionTests/SuppressedSourceGenerationTests.cs:1 at head 9007cee1
Cited by nemotron:N5
tests/MessagePack.SourceGenerator.ExecutionTests/SuppressedSourceGenerationTests.cs @ head 9007cee1
1// Copyright (c) All contributors. All rights reserved.2// Licensed under the MIT license. See LICENSE file in the project root for full license information.34/// <summary>
Quoted: // Copyright (c) All contributors. All rights reserved.
Back to the evidence