// This is specially designed for a hot path so we make some compromises in the signature: // // - "method" is passed by reference even though no side-effects are intended. // public static bool IsConstructor(ref Method method, MetadataReader reader) { if ((method.Flags & (MethodAttributes.RTSpecialName | MethodAttributes.SpecialName)) != (MethodAttributes.RTSpecialName | MethodAttributes.SpecialName)) { return(false); } ConstantStringValueHandle nameHandle = method.Name; return(nameHandle.StringEquals(ConstructorInfo.ConstructorName, reader) || nameHandle.StringEquals(ConstructorInfo.TypeConstructorName, reader)); }
public static bool StringOrNullEquals(this ConstantStringValueHandle handle, String valueOrNull, MetadataReader reader) { if (valueOrNull == null) { return(handle.IsNull(reader)); } if (handle.IsNull(reader)) { return(false); } return(handle.StringEquals(valueOrNull, reader)); }
public sealed override bool Matches(ConstantStringValueHandle stringHandle, MetadataReader reader) => stringHandle.StringEquals(ExpectedName, reader);