Beispiel #1
0
 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]")));
 }
Beispiel #2
0
 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);
     }
 }
Beispiel #4
0
 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)")));
 }
Beispiel #5
0
 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)")));
 }
Beispiel #6
0
 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[,])")));
 }
Beispiel #7
0
 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)")));
 }
Beispiel #8
0
        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);
        }
Beispiel #11
0
        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")));
        }
Beispiel #12
0
        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));
        }
Beispiel #13
0
 public void IntParse()
 {
     Assert.AreEqual("M:System.Int32.Parse(System.String)",
                     IdStringProvider.GetIdString(Lookup("int.Parse(string)")));
 }
Beispiel #14
0
 public void Constructor()
 {
     Assert.AreEqual("M:Test.#ctor",
                     IdStringProvider.GetIdString(Lookup("Test()")));
 }
Beispiel #15
0
 public void CurrentType()
 {
     Assert.AreEqual("T:Test",
                     IdStringProvider.GetIdString(Lookup("Test")));
 }
Beispiel #16
0
 public void M()
 {
     Assert.AreEqual("M:Test.M(System.Int32)",
                     IdStringProvider.GetIdString(Lookup("M")));
 }