public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(parameterizable); trapFile.Write('_'); trapFile.Write(index); trapFile.Write(";cil-parameter"); }
public override void WriteId(EscapingTextWriter trapFile) { string kind; IEntity containingEntity; switch (Symbol.TypeParameterKind) { case TypeParameterKind.Method: kind = "methodtypeparameter"; containingEntity = Method.Create(Context, (IMethodSymbol)Symbol.ContainingSymbol); break; case TypeParameterKind.Type: kind = "typeparameter"; containingEntity = Create(Context, Symbol.ContainingType); break; default: throw new InternalError(Symbol, $"Unhandled type parameter kind {Symbol.TypeParameterKind}"); } trapFile.WriteSubId(containingEntity); trapFile.Write('_'); trapFile.Write(Symbol.Ordinal); trapFile.Write(';'); trapFile.Write(kind); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(method); trapFile.Write('_'); trapFile.Write(index); trapFile.Write(";cil-local"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(DeclaringType); trapFile.Write('.'); trapFile.Write(Name); trapFile.Write(";cil-field"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(Context.CreateLocation(ReportingLocation)); trapFile.Write(Symbol.IsActive); trapFile.Write(','); trapFile.Write(Symbol.BranchTaken); trapFile.Write(";trivia"); }
/// <summary> /// Factored out to share logic between `Method` and `UserOperator`. /// </summary> private static void BuildMethodId(Method m, EscapingTextWriter trapFile) { if (!SymbolEqualityComparer.Default.Equals(m.Symbol, m.Symbol.OriginalDefinition)) { if (!SymbolEqualityComparer.Default.Equals(m.Symbol, m.ConstructedFromSymbol)) { trapFile.WriteSubId(Create(m.Context, m.ConstructedFromSymbol)); trapFile.Write('<'); // Encode the nullability of the type arguments in the label. // Type arguments with different nullability can result in // a constructed method with different nullability of its parameters and return type, // so we need to create a distinct database entity for it. trapFile.BuildList(",", m.Symbol.GetAnnotatedTypeArguments(), ta => { ta.Symbol.BuildOrWriteId(m.Context, trapFile, m.Symbol); trapFile.Write((int)ta.Nullability); }); trapFile.Write('>'); } else { trapFile.WriteSubId(m.ContainingType !); trapFile.Write("."); trapFile.WriteSubId(m.OriginalDefinition); } WritePostfix(m, trapFile); return; } m.Symbol.ReturnType.BuildOrWriteId(m.Context, trapFile, m.Symbol); trapFile.Write(" "); trapFile.WriteSubId(m.ContainingType !); AddExplicitInterfaceQualifierToId(m.Context, trapFile, m.Symbol.ExplicitInterfaceImplementations); trapFile.Write("."); trapFile.Write(m.Symbol.Name); if (m.Symbol.IsGenericMethod) { trapFile.Write('`'); trapFile.Write(m.Symbol.TypeParameters.Length); } AddParametersToId(m.Context, trapFile, m.Symbol); WritePostfix(m, trapFile); }
public override void WriteId(EscapingTextWriter trapFile, bool inContext) { if (!(inContext && method == gc)) { trapFile.WriteSubId(method); } trapFile.Write("!"); trapFile.Write(index); }
public void WriteId(EscapingTextWriter trapFile, IGenericContext outerGc) { if (!ReferenceEquals(innerGc, outerGc) && innerGc is Method method) { trapFile.WriteSubId(method); } trapFile.Write("M!"); trapFile.Write(index); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(Type); trapFile.Write(" "); trapFile.WriteSubId(ContainingType !); trapFile.Write('.'); trapFile.Write(Symbol.Name); trapFile.Write(";field"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(ContainingType !); trapFile.Write('.'); trapFile.Write(Symbol.MetadataName); trapFile.Write('('); trapFile.BuildList(",", Symbol.Parameters, p => trapFile.WriteSubId(Type.Create(Context, p.Type))); trapFile.Write(");indexer"); }
public override void WriteId(EscapingTextWriter trapFile) { if (!Symbol.IsGlobalNamespace) { trapFile.WriteSubId(Create(Context, Symbol.ContainingNamespace)); trapFile.Write('.'); trapFile.Write(Symbol.Name); } trapFile.Write(";namespace"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(Type); trapFile.Write(" "); trapFile.WriteSubId(ContainingType !); trapFile.Write('.'); Method.AddExplicitInterfaceQualifierToId(Context, trapFile, Symbol.ExplicitInterfaceImplementations); trapFile.Write(Symbol.Name); trapFile.Write(";property"); }
public override void WriteId(EscapingTextWriter trapFile) { if (ReportingLocation?.IsInSource == true) { trapFile.WriteSubId(Location); trapFile.Write(";attribute"); } else { trapFile.Write('*'); } }
public override void WriteId(EscapingTextWriter trapFile) { unboundMethod.WriteId(trapFile); trapFile.Write('<'); var index = 0; foreach (var param in typeParams) { trapFile.WriteSeparator(",", ref index); trapFile.WriteSubId(param); } trapFile.Write('>'); }
public override void WriteId(EscapingTextWriter trapFile) { if (Parent is null) { Parent = Method.Create(Context, Symbol.ContainingSymbol as IMethodSymbol); } if (Parent is null) { throw new InternalError(Symbol, "Couldn't get parent of symbol."); } trapFile.WriteSubId(Parent); trapFile.Write('_'); trapFile.Write(Ordinal); trapFile.Write(";parameter"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(type); trapFile.Write('.'); trapFile.Write(Context.GetString(pd.Name)); trapFile.Write("("); var index = 0; var signature = pd.DecodeSignature(new SignatureDecoder(), gc); foreach (var param in signature.ParameterTypes) { trapFile.WriteSeparator(",", ref index); param.WriteId(trapFile, gc); } trapFile.Write(")"); trapFile.Write(";cil-property"); }
public override void WriteId(EscapingTextWriter trapFile) { if (!SymbolEqualityComparer.Default.Equals(Symbol, Symbol.OriginalDefinition)) { trapFile.WriteSubId(ContainingType !); trapFile.Write("."); trapFile.WriteSubId(OriginalDefinition); trapFile.Write(";constructor"); return; } if (Symbol.IsStatic) { trapFile.Write("static"); } trapFile.WriteSubId(ContainingType !); AddParametersToId(Context, trapFile, Symbol); trapFile.Write(";constructor"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(Context.CreateLocation(ReportingLocation)); trapFile.Write(";namespacedeclaration"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(parent); trapFile.Write(";typeparameterconstraints"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(ElementType); Symbol.BuildArraySuffix(trapFile); trapFile.Write(";type"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(Context.CreateLocation(Symbol.Location)); trapFile.Write(";commentblock"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.WriteSubId(PointedAtType); trapFile.Write("*;type"); }
public override void WriteId(EscapingTextWriter trapFile) { trapFile.Write("loc,"); trapFile.WriteSubId(generatedFile); trapFile.Write(",0,0,0,0"); }