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());
            }
        }
Esempio n. 2
0
 protected override ISymbolNode CreateReadyToRunHelperNode(ReadyToRunHelperKey helperCall)
 {
     throw new NotSupportedException();
 }
Esempio n. 3
0
 protected abstract ISymbolNode CreateReadyToRunHelperNode(ReadyToRunHelperKey helperCall);
Esempio n. 4
0
 public bool Equals(ReadyToRunHelperKey other)
 {
     return(Id == other.Id && Target.Equals(other.Target));
 }
Esempio n. 5
0
 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));
 }