public void Parameters(int parameterCount, out ReturnTypeEncoder returnType, out ParametersEncoder parameters) { Builder.WriteCompressedInteger(parameterCount); returnType = new ReturnTypeEncoder(Builder); parameters = new ParametersEncoder(Builder, allowVarArgs: _isVarArg); }
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()); }
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()); }
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); }
internal static void FromSystemType( this ReturnTypeEncoder typeEncoder, Type type, AssemblyGenerator generator) { if (type == typeof(void)) { typeEncoder.Void(); } else { typeEncoder.Type().FromSystemType(type, generator); } }
internal static void FromSystemType( this ReturnTypeEncoder typeEncoder, Type type, IAssemblyMetadata metadata) { if (type == typeof(void)) { typeEncoder.Void(); } else { typeEncoder.Type().FromSystemType(type, metadata); } }
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); } }
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(); }