public static CachedOutput CreateType(CorValue value, CorClass cls, TypePrinterFlags flags) { var valueOutput = CreateType(new TypeOutput(), value, flags); if (cls == null || value == null) { return(valueOutput.cachedOutput); } var typeOutput = value.WriteType(new TypeOutput(), cls, flags); return(CreateTypeInternal(valueOutput, typeOutput)); }
public static CachedOutput CreateType(CorValue value, TypeSig ts, IList <CorType> typeArgs, IList <CorType> methodArgs, TypePrinterFlags flags) { if (value == null && ts != null) { return(TypePrinterUtils.Write(new TypeOutput(), ts, flags, typeArgs, methodArgs).cachedOutput); } var valueOutput = CreateType(new TypeOutput(), value, flags); if (ts == null || value == null) { return(valueOutput.cachedOutput); } ts = ts.RemovePinnedAndModifiers() ?? ts; if (ts is ByRefSig) { ts = ts.Next ?? ts; } var typeOutput = value.WriteType(new TypeOutput(), ts, typeArgs, methodArgs, flags); return(CreateTypeInternal(valueOutput, typeOutput)); }
public void WriteType(ISyntaxHighlightOutput output, IDebuggerClass cls, TypeFormatFlags flags) { debugger.Dispatcher.UI(() => value.WriteType(new OutputConverter(output), ((DebuggerClass)cls).CorClass, (TypePrinterFlags)flags)); }