static private Translate ( |
||
symbol | ||
Résultat | Microsoft.Cci.IArrayTypeReference |
IEnumerable <Cci.ITypeReference> Cci.IGenericMethodInstanceReference.GetGenericArguments(EmitContext context) { PEModuleBuilder moduleBeingBuilt = (PEModuleBuilder)context.Module; foreach (var arg in UnderlyingMethod.TypeArguments) { yield return(moduleBeingBuilt.Translate(arg, syntaxNodeOpt: context.SyntaxNodeOpt, diagnostics: context.Diagnostics)); } }
ImmutableArray <Cci.ITypeReference> Cci.IGenericTypeInstanceReference.GetGenericArguments(EmitContext context) { PEModuleBuilder moduleBeingBuilt = (PEModuleBuilder)context.Module; var builder = ArrayBuilder <Cci.ITypeReference> .GetInstance(); foreach (TypeSymbol type in UnderlyingNamedType.TypeArguments)//TypeArgumentsNoUseSiteDiagnostics) { builder.Add(moduleBeingBuilt.Translate(type, syntaxNodeOpt: context.SyntaxNodeOpt, diagnostics: context.Diagnostics)); } return(builder.ToImmutableAndFree()); }
public virtual Cci.ITypeReference GetContainingType(EmitContext context) { PEModuleBuilder moduleBeingBuilt = (PEModuleBuilder)context.Module; return(moduleBeingBuilt.Translate(UnderlyingSymbol.ContainingType, context.SyntaxNodeOpt, context.Diagnostics)); }
ImmutableArray <Cci.IParameterTypeInformation> Cci.ISignature.GetParameters(EmitContext context) { PEModuleBuilder moduleBeingBuilt = (PEModuleBuilder)context.Module; return(moduleBeingBuilt.Translate(UnderlyingMethod.Parameters)); }
/// <summary> /// Emits call to given method. /// </summary> /// <returns>Method return type.</returns> public static TypeSymbol EmitCall(this ILBuilder il, PEModuleBuilder module, DiagnosticBag diagnostics, ILOpCode code, MethodSymbol method) { Contract.ThrowIfNull(method); Debug.Assert(code == ILOpCode.Call || code == ILOpCode.Calli || code == ILOpCode.Callvirt || code == ILOpCode.Newobj); var stack = method.GetCallStackBehavior(); if (code == ILOpCode.Newobj) stack += 1 + 1; // there is no <this>, + it pushes <newinst> on stack il.EmitOpCode(code, stack); il.EmitToken(module.Translate(method, diagnostics, false), null, diagnostics); return (code == ILOpCode.Newobj) ? method.ContainingType : method.ReturnType; }
public static void EmitSymbolToken(this ILBuilder il, PEModuleBuilder module, DiagnosticBag diagnostics, MethodSymbol symbol, SyntaxNode syntaxNode) { il.EmitToken(module.Translate(symbol, syntaxNode, diagnostics, true), syntaxNode, diagnostics); }