31 references to Implementation
Microsoft.DotNet.ApiCompat.Core (31)
Rules\Compat\AttributeDifference.cs (3)
135
$"Attribute '{type.FullName()}' exists on {errString} in the {
Implementation
} but not the {Contract}."));
151
$"Attribute '{type.FullName()}' on {errString} changed from '{contractKey}' in the {Contract} to '{implementationKey}' in the {
Implementation
}.");
165
$"Attribute '{type.FullName()}' exists on {errString} in the {Contract} but not the {
Implementation
}.");
Rules\Compat\CannotAddAbstractMembers.cs (1)
28
differences.AddIncompatibleDifference(this, impl.GetMemberViolationMessage("Member", $"is abstract in the {
Implementation
}", $"is missing in the {Contract}"));
Rules\Compat\CannotAddAttributes.cs (1)
108
$"Attribute '{attribName}' exists in the {Contract} but not the {
Implementation
}.");
Rules\Compat\CannotMakeAbstract.cs (2)
19
differences.AddIncompatibleDifference("CannotMakeMemberAbstract", impl.GetMemberViolationMessage("Member", $"is abstract in the {
Implementation
}", $"is not abstract in the {Contract}"));
34
$"Type '{impl.FullName()}' is abstract in the {
Implementation
} but is not abstract in the {Contract}.");
Rules\Compat\CannotMakeMoreVisible.cs (2)
29
$"Visibility of member '{impl.FullName()}' is '{impl.GetVisibilityName()}' in the {
Implementation
} but '{contract.GetVisibilityName()}' in the {Contract}.");
52
$"Visibility of type '{impl.FullName()}' is '{impl.GetVisibilityName()}' in the {
Implementation
} but '{contract.GetVisibilityName()}' in the {Contract}.");
Rules\Compat\CannotMakeNonVirtual.cs (1)
35
differences.AddIncompatibleDifference("CannotMakeMemberNonVirtual", impl.GetMemberViolationMessage("Member", $"is non-virtual in the {
Implementation
}", $"is virtual in the {Contract}"));
Rules\Compat\CannotRemoveBaseTypeOrInterface.cs (2)
45
$"Type '{contract.FullName()}' does not inherit from base type '{contractBaseType.FullName()}' in the {
Implementation
} but it does in the {Contract}.");
67
$"Type '{contract.FullName()}' does not implement interface '{contractInterface.FullName()}' in the {
Implementation
} but it does in the {Contract}.");
Rules\Compat\CannotRemoveGenerics.cs (2)
55
$"Variance on generic parameter '{implParam.FullName()}' for '{target.FullName()}' is '{implParam.Variance}' in the {
Implementation
} but '{contractParam.Variance}' in the {Contract}.");
64
$"Constraints for generic parameter '{implParam.FullName()}' for '{target.FullName()}' is '{implConstraints}' in the {
Implementation
} but '{contractConstraints}' in the {Contract}.");
Rules\Compat\CannotSealType.cs (1)
20
$"Type '{impl.FullName()}' is {(impl.IsSealed ? "actually (has the sealed modifier)" : "effectively (has a private constructor)")} sealed in the {
Implementation
} but not sealed in the {Contract}.");
Rules\Compat\DelegatesMustMatch.cs (3)
50
$"Return type on delegate '{implMethod.ContainingType.FullName()}' is '{implReturnType.FullName()}' in the {
Implementation
} but '{contractReturnType.FullName()}' in the {Contract}.");
75
$"Parameter name on delegate '{implMethod.ContainingType.FullName()}' is '{implParam.Name.Value}' in the {
Implementation
} but '{contractParam.Name.Value}' in the {Contract}.");
82
$"Type for parameter '{implParam.Name.Value}' on delegate '{implMethod.ContainingType.FullName()}' is '{implParam.Type.FullName()}' in the {
Implementation
} but '{contractParam.Type.FullName()}' in the {Contract}.");
Rules\Compat\EnumTypesMustMatch.cs (1)
31
$"Enum type for '{impl.FullName()}' is '{implType.FullName()}' in {
Implementation
} but '{contractType.FullName()}' in the {Contract}.");
Rules\Compat\EnumValuesMustMatch.cs (1)
37
$"Enum value '{implField.FullName()}' is ({implValType.FullName()}){implField.Constant.Value} in the {
Implementation
} but ({contractValType.FullName()}){contractField.Constant.Value} in the {Contract}.");
Rules\Compat\InterfacesShouldHaveSameMembers.cs (2)
26
differences.AddIncompatibleDifference(this, contract.GetMemberViolationMessage($"{GetNameOfInterfaceMemberType(contract)}", $"is present in the {Contract}", $"not in the {
Implementation
}"));
35
differences.AddIncompatibleDifference(this, impl.GetMemberViolationMessage($"{GetNameOfInterfaceMemberType(impl)}", $"is present in the {
Implementation
}", $"not in the {Contract}"));
Rules\Compat\MembersMustExist.cs (1)
32
string incompatibleDifferenceMessage = contractMember.GetMemberViolationMessage("Member", $"does not exist in the {
Implementation
}", $"it does exist in the {Contract}");
Rules\Compat\ParameterModifiersCannotChange.cs (3)
59
$"Modifiers on parameter '{implParam.Name.Value}' on method '{implMethod.FullName()}' are '{GetModifier(implParam)}' in the {
Implementation
} but '{GetModifier(contractParam)}' in the {Contract}.");
71
$"Custom modifiers on parameter '{implParam.Name.Value}' on method '{implMethod.FullName()}' are '{PrintCustomModifiers(implParam.CustomModifiers)}' in the {
Implementation
} but '{PrintCustomModifiers(contractParam.CustomModifiers)}' in the {Contract}.");
83
$"Modifiers on return type of method '{implMethod.FullName()}' are '{implReturnModifier}' in the {
Implementation
} but '{contractReturnModifier}' in the {Contract}.");
Rules\Compat\ParameterNamesCannotChange.cs (1)
48
$"Parameter name on member '{implMethod.FullName()}' is '{implParam.Name.Value}' in the {
Implementation
} but '{contractParam.Name.Value}' in the {Contract}.");
Rules\Compat\TypeCannotChangeClassification.cs (2)
23
$"Type '{impl.FullName()}' is a '{implObjType}' in the {
Implementation
} but is a '{contractObjType}' in the {Contract}.");
31
$"Type '{impl.FullName()}' is marked as readonly in the {Contract} so it must also be marked readonly in the {
Implementation
}.");
Rules\Compat\TypesMustAlwaysImplementIDisposable.cs (1)
20
$"Type '{impl.FullName()}' implements IDisposable in the {
Implementation
} but not the {Contract}.");
Rules\Compat\TypesMustExist.cs (1)
18
$"Type '{contract.FullName()}' does not exist in the {
Implementation
} but it does exist in the {Contract}.");