public static string GetName(this MemberInfoSlim m) { return(m switch { SimpleMethodInfoSlimBase smtd => smtd.Name, GenericMethodInfoSlim gmtd => gmtd.GenericMethodDefinition.GetName(), PropertyInfoSlim prp => prp.Name, FieldInfoSlim fld => fld.Name, _ => "<unknown>", });
public void MemberInfoSlimEqualityComparer_Field() { var tq = new TypeSlimEqualityComparer(); var eq = new MemberInfoSlimEqualityComparer(tq); var asm = new AssemblySlim("foo"); var tp1 = TypeSlim.Simple(asm, "bar"); var tp2 = TypeSlim.Simple(asm, "baz"); var i4 = typeof(int).ToTypeSlim(); var i8 = typeof(long).ToTypeSlim(); var fld11_0 = new FieldInfoSlim(tp1, "qux1", i4); var fld12_0 = new FieldInfoSlim(tp1, "qux2", i4); var fld13_0 = new FieldInfoSlim(tp1, "qux3", i8); var fld11_1 = new FieldInfoSlim(tp1, "qux1", i4); var fld12_1 = new FieldInfoSlim(tp1, "qux2", i4); var fld13_1 = new FieldInfoSlim(tp1, "qux3", i8); var fld21_0 = new FieldInfoSlim(tp2, "qux1", i4); Assert.IsTrue(eq.Equals(fld11_0, fld11_0)); Assert.IsTrue(eq.Equals(fld11_0, fld11_1)); Assert.IsTrue(eq.Equals(fld11_1, fld11_0)); Assert.IsTrue(eq.Equals(fld11_1, fld11_1)); Assert.IsTrue(eq.Equals(fld12_0, fld12_0)); Assert.IsTrue(eq.Equals(fld12_0, fld12_1)); Assert.IsTrue(eq.Equals(fld12_1, fld12_0)); Assert.IsTrue(eq.Equals(fld12_1, fld12_1)); Assert.IsTrue(eq.Equals(fld13_0, fld13_0)); Assert.IsTrue(eq.Equals(fld13_0, fld13_1)); Assert.IsTrue(eq.Equals(fld13_1, fld13_0)); Assert.IsTrue(eq.Equals(fld13_1, fld13_1)); Assert.IsFalse(eq.Equals(fld11_0, fld12_0)); Assert.IsFalse(eq.Equals(fld12_0, fld11_0)); Assert.IsFalse(eq.Equals(fld11_0, fld21_0)); Assert.IsFalse(eq.Equals(fld21_0, fld11_0)); Assert.AreEqual(eq.GetHashCode(fld11_0), eq.GetHashCode(fld11_1)); Assert.AreEqual(eq.GetHashCode(fld12_0), eq.GetHashCode(fld12_1)); Assert.AreEqual(eq.GetHashCode(fld13_0), eq.GetHashCode(fld13_1)); }
public void MemberInfoSlimEqualityComparer_Trivialities() { var tq = new TypeSlimEqualityComparer(); var eq = new MemberInfoSlimEqualityComparer(tq); var i4 = typeof(int).ToTypeSlim(); var fl = new FieldInfoSlim(i4, "foo", i4); var pr = PropertyInfoSlim.Make(i4, "bar", i4, new List <TypeSlim>().AsReadOnly(), canWrite: true); Assert.IsTrue(eq.Equals(null, null)); Assert.AreEqual(eq.GetHashCode(null), eq.GetHashCode(null)); Assert.IsFalse(eq.Equals(fl, null)); Assert.IsFalse(eq.Equals(null, fl)); Assert.IsFalse(eq.Equals(fl, pr)); Assert.IsFalse(eq.Equals(pr, fl)); }
protected override int VisitField(FieldInfoSlim field) => Combine((int)field.MemberType, Visit(field.DeclaringType), Visit(field.FieldType), Visit(field.Name));
protected override int VisitField(FieldInfoSlim field) => throw new NotImplementedException();
protected override MemberInfoSlim VisitField(FieldInfoSlim field) { return(SlimType.GetProperty("Foo", propertyType: null, EmptyReadOnlyCollection <TypeSlim> .Instance, canWrite: true)); }
private static void AssertAreSameField(FieldInfo fieldInfo, FieldInfoSlim fieldInfoSlim) { Assert.AreEqual(fieldInfo.Name, fieldInfoSlim.Name); Assert.IsTrue(TypeSlimExtensions.Equals(fieldInfo.DeclaringType.ToTypeSlim(), fieldInfoSlim.DeclaringType)); Assert.IsTrue(TypeSlimExtensions.Equals(fieldInfo.FieldType.ToTypeSlim(), fieldInfoSlim.FieldType)); }
public FieldDef(TypeRef declaringType, FieldInfoSlim field) : base(declaringType) { _field = field; }