internal Diagnostic(CXDiagnosticImpl *ptr, TranslationUnit translationUnit)
        {
            Debug.Assert(ptr != null);

            Ptr             = ptr;
            TranslationUnit = translationUnit;
        }
 public static extern uint clang_getDiagnosticNumFixIts(
     CXDiagnosticImpl *Diagnostic);
 public static extern CXString clang_getDiagnosticFixIt(
     CXDiagnosticImpl *Diagnostic,
     uint FixIt,
     CXSourceRange *ReplacementRange);
 public static extern uint clang_getDiagnosticNumRanges(
     CXDiagnosticImpl *arg1);
 public static extern CXSourceRange clang_getDiagnosticRange(
     CXDiagnosticImpl *Diagnostic,
     uint Range);
 public static extern uint clang_getDiagnosticCategory(
     CXDiagnosticImpl *arg1);
 public static extern CXString clang_getDiagnosticCategoryText(
     CXDiagnosticImpl *arg1);
 public static extern CXString clang_getDiagnosticSpelling(
     CXDiagnosticImpl *arg1);
 public static extern CXString clang_getDiagnosticOption(
     CXDiagnosticImpl *Diag,
     CXString *Disable);
 public static extern CXSourceLocation clang_getDiagnosticLocation(
     CXDiagnosticImpl *arg1);
 public static extern CXDiagnosticSeverity clang_getDiagnosticSeverity(
     CXDiagnosticImpl *arg1);
 public static extern CXString clang_formatDiagnostic(
     CXDiagnosticImpl *Diagnostic,
     uint Options);
 public static extern void clang_disposeDiagnostic(
     CXDiagnosticImpl *Diagnostic);
 public static extern CXDiagnosticSetImpl *clang_getChildDiagnostics(
     CXDiagnosticImpl *D);