public void IndexerWithDeclaringType() { Assert.AreEqual("P:Test.Item(System.Int32)", IdStringProvider.GetIdString(Lookup("Test.this"))); Assert.AreEqual("P:Test.Item(System.Int32)", IdStringProvider.GetIdString(Lookup("Test.this[int]"))); }
public DocumentationComment GetDocumentation(IEntity entity) { // Note: there's no mscorlib in the context. // These tests only use primitive types from mscorlib, so the full name is known // without resolving them. return(new DocumentationComment(IdStringProvider.GetIdString(entity), new SimpleTypeResolveContext(entity))); }
/// <summary> /// Resolves the given cref value to an entity. /// Returns null if the entity is not found, or if the cref attribute is syntactically invalid. /// </summary> public virtual IEntity ResolveCref(string cref) { try { return(IdStringProvider.FindEntity(cref, context)); } catch (ReflectionNameParseException) { return(null); } }
public void ImplicitOperator() { Assert.AreEqual("M:Test.op_Implicit(Test)~System.Int32", IdStringProvider.GetIdString(Lookup("implicit operator int(Test)"))); Assert.AreEqual("M:Test.op_Implicit(System.Int32)~Test", IdStringProvider.GetIdString(Lookup("implicit operator Test(int)"))); Assert.AreEqual("M:Test.op_Implicit(System.Int32)~Test", IdStringProvider.GetIdString(Lookup("Test.implicit operator Test(int)"))); }
public void OperatorPlus() { Assert.AreEqual("M:Test.op_Addition(Test,System.Int32)", IdStringProvider.GetIdString(Lookup("operator +"))); Assert.AreEqual("M:Test.op_Addition(Test,System.Int32)", IdStringProvider.GetIdString(Lookup("operator +(Test, int)"))); Assert.AreEqual("M:Test.op_Addition(Test,System.Int32)", IdStringProvider.GetIdString(Lookup("Test.operator +(Test, int)"))); }
public void MethodInGenericInterface() { Assert.AreEqual("M:IGeneric`2.Test``1(``0[0:,0:]@)", IdStringProvider.GetIdString(Lookup("IGeneric{X, Y}.Test"))); Assert.AreEqual("M:IGeneric`2.Test``1(``0[0:,0:]@)", IdStringProvider.GetIdString(Lookup("IGeneric{X, Y}.Test{Z}"))); Assert.AreEqual("M:IGeneric`2.Test``1(``0[0:,0:]@)", IdStringProvider.GetIdString(Lookup("IGeneric{X, Y}.Test{Z}(ref Z[,])"))); }
public void Overloaded() { Assert.AreEqual("M:Test.Overloaded(System.Int32)", IdStringProvider.GetIdString(Lookup("Overloaded(int)"))); Assert.AreEqual("M:Test.Overloaded(System.String)", IdStringProvider.GetIdString(Lookup("Overloaded(string)"))); Assert.AreEqual("M:Test.Overloaded(System.Int32@)", IdStringProvider.GetIdString(Lookup("Overloaded(ref int)"))); }
public void TestParseTypeName() { var result = IdStringProvider.ParseTypeName("T:System.Collections.Generic.List{T}"); Assert.IsNotNull(result); var pc = new CSharpProjectContent().AddAssemblyReferences(new[] { CecilLoaderTests.Mscorlib }); var type = result.Resolve(pc.CreateCompilation()); Assert.AreEqual("System.Collections.Generic.List", type.FullName); Assert.AreEqual(1, type.TypeParameterCount); }
/// <inheritdoc/> public DocumentationComment GetDocumentation(IEntity entity) { string xmlDoc = GetDocumentation(IdStringProvider.GetIdString(entity)); if (xmlDoc != null) { return(new DocumentationComment(new StringTextSource(xmlDoc), new SimpleTypeResolveContext(entity))); } else { return(null); } }
public IMember Resolve(ITypeResolveContext context) { IType declaringType = declaringTypeReference.Resolve(context); foreach (var member in declaringType.GetMembers(CanMatch, GetMemberOptions.IgnoreInheritedMembers)) { if (IdStringProvider.GetIdString(member) == memberIdString) { return(member); } } return(null); }
public void CorlibIDStrings() { var list = new SimpleCompilation(CecilLoaderTests.Mscorlib).FindType(typeof(List <>)).GetDefinition(); Assert.AreEqual("T:System.Collections.Generic.List`1", IdStringProvider.GetIdString(list)); Assert.AreEqual("M:System.Collections.Generic.List`1.Add(`0)", IdStringProvider.GetIdString(list.Methods.Single(m => m.Name == "Add"))); Assert.AreEqual("M:System.Collections.Generic.List`1.AddRange(System.Collections.Generic.IEnumerable{`0})", IdStringProvider.GetIdString(list.Methods.Single(m => m.Name == "AddRange"))); Assert.AreEqual("M:System.Collections.Generic.List`1.ConvertAll``1(System.Converter{`0,``0})", IdStringProvider.GetIdString(list.Methods.Single(m => m.Name == "ConvertAll"))); }
public void ExplicitGenericInterfaceImplementation_IDString() { string program = @" namespace xxx { interface IGeneric<A, B> { void Test<T>(ref T a); } class Impl<T> : IGeneric<string[,], T> { void IGeneric<string[,], T>.Test<X>(ref X a); } } "; Init(program); ITypeDefinition impl = GetTypeDefinition("xxx", "Impl", 1); IMethod method = impl.Methods.Single(m => m.Name == "Test"); Assert.AreEqual( "M:xxx.Impl`1.xxx#IGeneric{System#String[@]@T}#Test``1(``0@)", IdStringProvider.GetIdString(method)); }
public void IntParse() { Assert.AreEqual("M:System.Int32.Parse(System.String)", IdStringProvider.GetIdString(Lookup("int.Parse(string)"))); }
public void Constructor() { Assert.AreEqual("M:Test.#ctor", IdStringProvider.GetIdString(Lookup("Test()"))); }
public void CurrentType() { Assert.AreEqual("T:Test", IdStringProvider.GetIdString(Lookup("Test"))); }
public void M() { Assert.AreEqual("M:Test.M(System.Int32)", IdStringProvider.GetIdString(Lookup("M"))); }