コード例 #1
0
        public void Parameters(int parameterCount, out ReturnTypeEncoder returnType, out ParametersEncoder parameters)
        {
            Builder.WriteCompressedInteger(parameterCount);

            returnType = new ReturnTypeEncoder(Builder);
            parameters = new ParametersEncoder(Builder, allowVarArgs: _isVarArg);
        }
コード例 #2
0
        public void ReturnTypeEncoder_Void()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);

            Assert.Same(b, e.Builder);

            e.Void();
            AssertEx.Equal(new byte[] { 0x01 }, b.ToArray());
        }
コード例 #3
0
        public void ReturnTypeEncoder_TypedReference()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);

            Assert.Same(b, e.Builder);

            e.TypedReference();
            AssertEx.Equal(new byte[] { 0x16 }, b.ToArray());
        }
コード例 #4
0
        public void ReturnTypeEncoder_CustomModifiers()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);

            Assert.Same(b, e.Builder);

            var s = e.CustomModifiers();

            AssertEx.Equal(new byte[0], b.ToArray());
            Assert.Same(b, s.Builder);
        }
コード例 #5
0
ファイル: Extensions.cs プロジェクト: wangchengqun/ILPack
 internal static void FromSystemType(
     this ReturnTypeEncoder typeEncoder,
     Type type,
     AssemblyGenerator generator)
 {
     if (type == typeof(void))
     {
         typeEncoder.Void();
     }
     else
     {
         typeEncoder.Type().FromSystemType(type, generator);
     }
 }
コード例 #6
0
ファイル: Extensions.cs プロジェクト: LDj3SNuD/ILPack
 internal static void FromSystemType(
     this ReturnTypeEncoder typeEncoder,
     Type type,
     IAssemblyMetadata metadata)
 {
     if (type == typeof(void))
     {
         typeEncoder.Void();
     }
     else
     {
         typeEncoder.Type().FromSystemType(type, metadata);
     }
 }
コード例 #7
0
ファイル: Extensions.cs プロジェクト: reflectronic/ILPack
 internal static void FromSystemType(
     this ReturnTypeEncoder typeEncoder,
     Type type,
     IAssemblyMetadata metadata)
 {
     if (type == typeof(void))
     {
         typeEncoder.Void();
     }
     else if (type.IsByRef)
     {
         typeEncoder.Type(true).FromSystemType(type.GetElementType(), metadata);
     }
     else
     {
         typeEncoder.Type(false).FromSystemType(type, metadata);
     }
 }
コード例 #8
0
        public void ReturnTypeEncoder_Type()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);

            Assert.Same(b, e.Builder);

            var s = e.Type(true);

            AssertEx.Equal(new byte[] { 0x10 }, b.ToArray());
            Assert.Same(b, s.Builder);
            b.Clear();

            e.Type(false);
            AssertEx.Equal(new byte[0], b.ToArray());
            b.Clear();

            e.Type();
            AssertEx.Equal(new byte[0], b.ToArray());
            b.Clear();
        }
コード例 #9
0
ファイル: BlobEncoders.cs プロジェクト: er0dr1guez/corefx
        public void Parameters(int parameterCount, out ReturnTypeEncoder returnType, out ParametersEncoder parameters)
        {
            Builder.WriteCompressedInteger(parameterCount);

            returnType = new ReturnTypeEncoder(Builder);
            parameters = new ParametersEncoder(Builder, allowVarArgs: _isVarArg);
        }
コード例 #10
0
        public void ReturnTypeEncoder_Void()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);
            Assert.Same(b, e.Builder);

            e.Void();
            AssertEx.Equal(new byte[] { 0x01 }, b.ToArray());
        }
コード例 #11
0
        public void ReturnTypeEncoder_TypedReference()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);
            Assert.Same(b, e.Builder);

            e.TypedReference();
            AssertEx.Equal(new byte[] { 0x16 }, b.ToArray());
        }
コード例 #12
0
        public void ReturnTypeEncoder_Type()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);
            Assert.Same(b, e.Builder);

            var s = e.Type(true);
            AssertEx.Equal(new byte[] { 0x10 }, b.ToArray());
            Assert.Same(b, s.Builder);
            b.Clear();

            e.Type(false);
            AssertEx.Equal(new byte[0], b.ToArray());
            b.Clear();

            e.Type();
            AssertEx.Equal(new byte[0], b.ToArray());
            b.Clear();
        }
コード例 #13
0
        public void ReturnTypeEncoder_CustomModifiers()
        {
            var b = new BlobBuilder();
            var e = new ReturnTypeEncoder(b);
            Assert.Same(b, e.Builder);

            var s = e.CustomModifiers();
            AssertEx.Equal(new byte[0], b.ToArray());
            Assert.Same(b, s.Builder);
        }