protected void WriteFlags(CILWriter output, uint flags) { Contract.Requires(output != null); uint vis = (flags & 0x07); // visibility mask switch (vis) { case 0: output.Write("compilercontrolled "); break; case 1: output.Write("private "); break; case 2: output.Write("famandassem "); break; case 3: output.Write("assembly "); break; case 4: output.Write("family "); break; case 5: output.Write("famorassem "); break; case 6: output.Write("public "); break; } if ((flags & (ushort)FieldAttr.Static) != 0) { output.Write("static "); } if ((flags & (ushort)FieldAttr.Initonly) != 0) { if (this is MethodDef) { output.Write("final "); } else { output.Write("initonly "); } } if ((flags & (ushort)FieldAttr.Literal) != 0) { if (this is MethodDef) { output.Write("virtual "); } else { output.Write("literal "); } } if ((flags & (ushort)FieldAttr.Notserialized) != 0) { if (this is MethodDef) { output.Write("hidebysig "); } else { output.Write("notserialized "); } } if (this is MethodDef) { // more flags required here if ((flags & (ushort)MethAttr.Abstract) != 0) { output.Write("abstract "); } if ((flags & (ushort)MethAttr.SpecialName) != 0) { output.Write("specialname "); } if ((flags & (ushort)MethAttr.RTSpecialName) != 0) { output.Write("rtspecialname "); } } else { // more flags required here if ((flags & (ushort)FieldAttr.SpecialName) != 0) { output.Write("specialname "); } if ((flags & (ushort)FieldAttr.RTSpecialName) != 0) { output.Write("rtsspecialname "); } } }
internal abstract void WriteType(CILWriter output);
internal override void Write(CILWriter output) { pType.WriteType(output); output.Write(" " + pName); }
internal override void BuildCILInfo(CILWriter output) { pType.BuildCILInfo(output); }
internal virtual void Write(CILWriter output) { Contract.Requires(output != null); throw new Exception("CIL backend not yet fully implemented - " + GetType().ToString()); }
internal virtual void BuildCILInfo(CILWriter output) { Contract.Requires(output != null); }