@typeof() public method

public @typeof ( ) : Type
return Type
Ejemplo n.º 1
0
        //////////////////////////////////////////////////////////////////////////
        // Map
        //////////////////////////////////////////////////////////////////////////
        public void writeMap(Map map)
        {
            // get k,v type
              MapType t = (MapType)map.@typeof();

              // decide if we're going output as single or multi-line format
              bool nl = isMultiLine(t.m_k) || isMultiLine(t.m_v);

              // figure out if we can use an inferred type
              bool inferred = false;
              if (curFieldType != null && curFieldType.fits(Sys.MapType))
              {
            inferred = true;
              }

              // clear field type, so it doesn't get used for inference again
              curFieldType = null;

              // if we don't have an inferred type, then prefix of type
              if (!inferred) wType(t);

              // handle empty map
              if (map.isEmpty()) { w("[:]"); return; }

              // items
              level++;
              w('[');
              bool first = true;
              IDictionaryEnumerator en = map.pairsIterator();
              while (en.MoveNext())
              {
            if (first) first = false; else w(',');
            if (nl) w('\n').wIndent();
            object key = en.Key;
            object val = en.Value;
            writeObj(key); w(':'); writeObj(val);
              }
              w(']');
              level--;
        }