public override string VisualizeSymbol(uint token) { Cci.IReference reference = decoder.GetSymbolForILToken(MetadataTokens.Handle((int)token)); ISymbol symbol = reference as ISymbol; return(string.Format("\"{0}\"", symbol == null ? (object)reference : symbol.ToDisplayString(SymbolDisplayFormat.ILVisualizationFormat))); }
public static void VisitReference(Cci.IReference reference, EmitContext context) { var typeReference = reference as Cci.ITypeReference; if (typeReference != null) { VisitTypeReference(typeReference, context); return; } var methodReference = reference as Cci.IMethodReference; if (methodReference != null) { VisitMethodReference(methodReference, context); return; } var fieldReference = reference as Cci.IFieldReference; if (fieldReference != null) { VisitFieldReference(fieldReference, context); return; } }
public uint GetFakeSymbolTokenForIL(Cci.IReference symbol, SyntaxNode syntaxNode, DiagnosticBag diagnostics) { uint token = _referencesInILMap.GetOrAddTokenFor(symbol, out bool added); if (added) { ReferenceDependencyWalker.VisitReference(symbol, new EmitContext(this, syntaxNode, diagnostics)); } return(token); }
internal void EmitToken(Cci.IReference value, SyntaxNode syntaxNode, DiagnosticBag diagnostics, bool encodeAsRawToken = false) { uint token = module?.GetFakeSymbolTokenForIL(value, syntaxNode, diagnostics) ?? 0xFFFF; // Setting the high bit indicates that the token value is to be interpreted literally rather than as a handle. if (encodeAsRawToken) { token |= Cci.MetadataWriter.LiteralMethodDefinitionToken; } this.GetCurrentWriter().WriteUInt32(token); }
public uint GetFakeSymbolTokenForIL(Cci.IReference symbol, SyntaxNode syntaxNode, DiagnosticBag diagnostics) { bool added; uint token = _referencesInILMap.GetOrAddTokenFor(symbol, out added); if (added) { ReferenceDependencyWalker.VisitReference(symbol, new EmitContext(this, syntaxNode, diagnostics, metadataOnly: false, includePrivateMembers: true)); } return(token); }
public override string VisualizeSymbol(uint token, OperandType operandType) { Cci.IReference reference = _decoder.GetSymbolForILToken(MetadataTokens.EntityHandle((int)token)); return(string.Format("\"{0}\"", (reference is ISymbol symbol) ? symbol.ToDisplayString(SymbolDisplayFormat.ILVisualizationFormat) : (object)reference)); }