Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ DecodeMethodSignature()

MethodSignature< TType > System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeMethodSignature ( ref BlobReader blobReader)
inline

Definition at line 118 of file SignatureDecoder.cs.

119 {
120 SignatureHeader header = blobReader.ReadSignatureHeader();
122 int genericParameterCount = 0;
123 if (header.IsGeneric)
124 {
125 genericParameterCount = blobReader.ReadCompressedInteger();
126 }
127 int num = blobReader.ReadCompressedInteger();
128 TType returnType = DecodeType(ref blobReader);
129 int requiredParameterCount;
130 ImmutableArray<TType> parameterTypes;
131 if (num == 0)
132 {
133 requiredParameterCount = 0;
134 parameterTypes = ImmutableArray<TType>.Empty;
135 }
136 else
137 {
138 ImmutableArray<TType>.Builder builder = ImmutableArray.CreateBuilder<TType>(num);
139 int i;
140 for (i = 0; i < num; i++)
141 {
142 int num2 = blobReader.ReadCompressedInteger();
143 if (num2 == 65)
144 {
145 break;
146 }
147 builder.Add(DecodeType(ref blobReader, allowTypeSpecifications: false, num2));
148 }
149 requiredParameterCount = i;
150 for (; i < num; i++)
151 {
152 builder.Add(DecodeType(ref blobReader));
153 }
154 parameterTypes = builder.MoveToImmutable();
155 }
156 return new MethodSignature<TType>(header, returnType, requiredParameterCount, genericParameterCount, parameterTypes);
157 }
static readonly ImmutableArray< T > Empty
TType DecodeType(ref BlobReader blobReader, bool allowTypeSpecifications=false)

References System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.CheckMethodOrPropertyHeader(), System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeType(), System.Collections.Immutable.ImmutableArray< T >.Empty, and System.Reflection.Metadata.SignatureHeader.IsGeneric.

Referenced by System.Reflection.Metadata.MemberReference.DecodeMethodSignature< TType, TGenericContext >(), System.Reflection.Metadata.StandaloneSignature.DecodeMethodSignature< TType, TGenericContext >(), System.Reflection.Metadata.MethodDefinition.DecodeSignature< TType, TGenericContext >(), System.Reflection.Metadata.PropertyDefinition.DecodeSignature< TType, TGenericContext >(), and System.Reflection.Metadata.Ecma335.SignatureDecoder< TType, TGenericContext >.DecodeType().