Skip to content
Merged
Changes from all commits
Commits
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
Original file line number Diff line number Diff line change
Expand Up @@ -67,14 +67,7 @@ IEnumerable<string> GetFailures()
return s.FullName;
}), StringComparer.Ordinal);

// Workaround for compiler injected attribute to describe the language version
linkedMembers.Remove("System.Void Microsoft.CodeAnalysis.EmbeddedAttribute::.ctor()");
linkedMembers.Remove("System.Int32 System.Runtime.CompilerServices.RefSafetyRulesAttribute::Version");
linkedMembers.Remove("System.Void System.Runtime.CompilerServices.RefSafetyRulesAttribute::.ctor(System.Int32)");

// Workaround for compiler injected attribute to describe the language version
verifiedGeneratedTypes.Add("Microsoft.CodeAnalysis.EmbeddedAttribute");
verifiedGeneratedTypes.Add("System.Runtime.CompilerServices.RefSafetyRulesAttribute");
PrepareToVerifyAssembly(originalAssembly);

var membersToAssert = originalAssembly.MainModule.Types;
foreach (var originalMember in membersToAssert)
Expand Down Expand Up @@ -104,6 +97,25 @@ IEnumerable<string> GetFailures()
}
}

/// <summary>
/// An opportunity to adjust what has been verified. Helpful for dealing with polyfills or compiler generated types
/// </summary>
/// <param name="original"></param>
protected virtual void PrepareToVerifyAssembly(AssemblyDefinition original)
{
}

/// <summary>
/// The type will not be verified
/// </summary>
/// <param name="type"></param>
protected void IgnoreGeneratedTypeAndItsMembers(TypeDefinition type)
{
verifiedGeneratedTypes.Add(type.FullName);
foreach (var member in type.AllMembers())
linkedMembers.Remove(member.FullName);
}

static bool IsBackingField(FieldDefinition field) => field.Name.StartsWith("<") && field.Name.EndsWith(">k__BackingField");

protected virtual IEnumerable<string> VerifyModule(ModuleDefinition original, ModuleDefinition linked)
Expand Down
Loading