private ISymbolNode CreateReadyToRunHelper(ReadyToRunHelperKey key) { switch (key.Id) { case ReadyToRunHelperId.NewHelper: return(CreateNewHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.NewArr1: return(CreateNewArrayHelper((ArrayType)key.Target)); case ReadyToRunHelperId.GetGCStaticBase: return(CreateGCStaticBaseHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.GetNonGCStaticBase: return(CreateNonGCStaticBaseHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.GetThreadStaticBase: return(CreateThreadGcStaticBaseHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.GetThreadNonGcStaticBase: return(CreateThreadNonGcStaticBaseHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.IsInstanceOf: return(CreateIsInstanceOfHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.CastClass: return(CreateCastClassHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.TypeHandle: return(CreateTypeHandleHelper((TypeDesc)key.Target)); case ReadyToRunHelperId.MethodHandle: return(CreateMethodHandleHelper((MethodWithToken)key.Target)); case ReadyToRunHelperId.FieldHandle: return(CreateFieldHandleHelper((FieldDesc)key.Target)); case ReadyToRunHelperId.CctorTrigger: return(CreateCctorTrigger((TypeDesc)key.Target)); case ReadyToRunHelperId.TypeDictionary: return(CreateTypeDictionary((TypeDesc)key.Target)); case ReadyToRunHelperId.MethodDictionary: return(CreateMethodDictionary((MethodWithToken)key.Target)); default: throw new NotImplementedException(key.Id.ToString()); } }
protected override ISymbolNode CreateReadyToRunHelperNode(ReadyToRunHelperKey helperCall) { throw new NotSupportedException(); }
protected abstract ISymbolNode CreateReadyToRunHelperNode(ReadyToRunHelperKey helperCall);
public bool Equals(ReadyToRunHelperKey other) { return(Id == other.Id && Target.Equals(other.Target)); }
protected override ISymbolNode CreateReadyToRunHelperNode(ReadyToRunHelperKey helperCall) { return(new ReadyToRunHelperNode(this, helperCall.HelperId, helperCall.Target)); }
public bool Equals(ReadyToRunHelperKey other) { return(Id == other.Id && Target.Equals(other.Target) && SignatureContext.Equals(other.SignatureContext)); }
protected override ISymbolNode CreateReadyToRunHelperNode(ReadyToRunHelperKey helperCall) { // TODO: this is wrong: this returns an assembly stub node return(new ReadyToRunHelperNode(this, helperCall.HelperId, helperCall.Target)); }