Example #1
0
        void AssertMemberRef(MemberRef mRef, MemberRefType type, int id,
                             IReadOnlyList <int> arrayDim = null, IReadOnlyList <TypeParamRef> typeParams = null)
        {
            Assert.AreEqual(mRef.Type, type);
            Assert.AreEqual(mRef.ID, id);
            Assert.That(mRef.ArrayDimensions, Is.EquivalentTo(arrayDim ?? Empty <int> .List));

            Assert.AreEqual(typeParams?.Count ?? 0, mRef.TypeParams.Count);
            for (int i = 0; i < mRef.TypeParams.Count; i++)
            {
                TypeParamRef expRef = typeParams[i];
                TypeParamRef actRef = mRef.TypeParams[i];

                Assert.AreEqual(expRef.TypeParamName, actRef.TypeParamName);
                if (expRef.MemberRef != null)
                {
                    AssertMemberRef(actRef.MemberRef, expRef.MemberRef.Type,
                                    expRef.MemberRef.ID, expRef.MemberRef.ArrayDimensions,
                                    expRef.MemberRef.TypeParams);
                }
                else
                {
                    Assert.IsNull(actRef.MemberRef);
                }
            }
        }
Example #2
0
        public MemberRef(string name, MemberRefType type, int id,
                         IReadOnlyList <int> arrayDimensions = null, IReadOnlyList <TypeParamRef> typeParams = null)
        {
            Name = name;

            Type = type;
            ID   = id;

            ArrayDimensions = arrayDimensions ?? Empty <int> .List;
            TypeParams      = typeParams ?? Empty <TypeParamRef> .List;
        }
Example #3
0
        public MemberRef BuildMemberRef(string ns, string cs, string name, MemberRefType type)
        {
            TypeRef consoleRef = new TypeRefUser(module, ns, cs, module.CorLibTypes.AssemblyRef);

            if (type == MemberRefType.Static)
            {
                return(new MemberRefUser(module, name,
                                         MethodSig.CreateStatic(module.CorLibTypes.Void, module.CorLibTypes.String),
                                         consoleRef));
            }
            else
            {
                return(new MemberRefUser(module, name,
                                         MethodSig.CreateInstance(module.CorLibTypes.Void, module.CorLibTypes.String),
                                         consoleRef));
            }
        }