Ejemplo n.º 1
0
 public EnumProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
     : base(name, staticType, value, parent, evaluator)
 {
     this.enumType = value.RuntimeType() as IDebugEnumType;
     if (this.enumType == null)
     {
         this.enumType = staticType as IDebugEnumType;
     }
 }
Ejemplo n.º 2
0
        // Override these factory methods to create language specfic IDebugProperty implementations
        public virtual BaseProperty MakeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent)
        {
            IDebugType type = null;

            if (value == null || value.IsNullReference() || staticType.Kind == TypeKind.Stream ||
                staticType.Kind == TypeKind.FlexArray || staticType.Kind == TypeKind.Enum)
            {
                type = staticType;
            }
            else
            {
                type = value.RuntimeType();
            }

            switch (type.Kind)
            {
            case TypeKind.Primitive:
                return(MakePrimitiveTypeProperty(name, staticType, value, parent));

            case TypeKind.InnerClass:
            case TypeKind.Class:
                return(MakeClassProperty(name, staticType, value, parent));

            case TypeKind.FlexArray:
                return(MakeFlexArrayProperty(name, staticType, value, parent));

            case TypeKind.Tuple:
                return(MakeStructuralProperty(name, staticType, value, parent));

            case TypeKind.Stream:
                return(MakeStreamProperty(name, staticType, value, parent));

            case TypeKind.Array:
                return(MakeArrayProperty(name, staticType, value, parent));

            case TypeKind.Enum:
                return(MakeEnumProperty(name, staticType, value, parent));
            }
            return(null);
        }
Ejemplo n.º 3
0
    // Override these factory methods to create language specfic IDebugProperty implementations
    public virtual BaseProperty MakeProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent){
      IDebugType type = null;
      if (value == null || value.IsNullReference() || staticType.Kind == TypeKind.Stream 
        || staticType.Kind == TypeKind.FlexArray || staticType.Kind == TypeKind.Enum)
        type = staticType;
      else
        type = value.RuntimeType();

      switch (type.Kind){
        case TypeKind.Primitive:
          return MakePrimitiveTypeProperty(name, staticType, value, parent);
        case TypeKind.InnerClass:
        case TypeKind.Class:
          return MakeClassProperty(name, staticType, value, parent);
        case TypeKind.FlexArray:
          return MakeFlexArrayProperty(name, staticType, value, parent);
        case TypeKind.Tuple:
          return MakeStructuralProperty(name, staticType, value, parent);
        case TypeKind.Stream:
          return MakeStreamProperty(name, staticType, value, parent);
        case TypeKind.Array:
          return MakeArrayProperty(name, staticType, value, parent);
        case TypeKind.Enum:
          return MakeEnumProperty(name, staticType, value, parent);
      }
      return null;
    }
Ejemplo n.º 4
0
 public EnumProperty(string name, IDebugType staticType, IDebugValue value, IDebugProperty parent, CommonExpressionEvaluator evaluator)
   : base(name, staticType, value, parent, evaluator){
   this.enumType = value.RuntimeType() as IDebugEnumType;
   if (this.enumType == null)
     this.enumType = staticType as IDebugEnumType;
 }
Ejemplo n.º 5
0
 public CEnumClosureClassSymbols(IDebugValue parent, IDebugContext context){
   this.m_Context = context;
   this.m_Parent = parent;
   this.m_ClassType = parent.RuntimeType() as IDebugClassType;
   this.m_Current = null;
   if (this.m_Parent != null && this.m_ClassType != null){
     this.m_FieldEnumerator = this.m_ClassType.GetMembers(null, true, SymbolKind.Field, SymbolModifiers.All);
   }
 }