Index: tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h |
diff --git a/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h b/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h |
index e05bd82fe97fba74f044ceb24160811649ea4b54..bcfb3afbd596e88e41ab5c0d4b70abb859e96daf 100644 |
--- a/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h |
+++ b/tools/clang/blink_gc_plugin/BlinkGCPluginConsumer.h |
@@ -8,10 +8,8 @@ |
#include <string> |
#include "BlinkGCPluginOptions.h" |
-#include "CheckFieldsVisitor.h" |
-#include "CheckFinalizerVisitor.h" |
-#include "CheckGCRootsVisitor.h" |
#include "Config.h" |
+#include "DiagnosticsReporter.h" |
#include "clang/AST/AST.h" |
#include "clang/AST/ASTConsumer.h" |
#include "clang/Basic/Diagnostic.h" |
@@ -75,7 +73,7 @@ class BlinkGCPluginConsumer : public clang::ASTConsumer { |
std::string GetLocString(clang::SourceLocation loc); |
- bool IsIgnored(RecordInfo* record); |
+ bool IsIgnored(RecordInfo* info); |
bool IsIgnoredClass(RecordInfo* info); |
@@ -85,112 +83,11 @@ class BlinkGCPluginConsumer : public clang::ASTConsumer { |
bool GetFilename(clang::SourceLocation loc, std::string* filename); |
- clang::DiagnosticBuilder ReportDiagnostic( |
- clang::SourceLocation location, |
- unsigned diag_id); |
- |
- void ReportClassMustLeftMostlyDeriveGC(RecordInfo* info); |
- void ReportClassRequiresTraceMethod(RecordInfo* info); |
- void ReportBaseRequiresTracing(RecordInfo* derived, |
- clang::CXXMethodDecl* trace, |
- clang::CXXRecordDecl* base); |
- void ReportFieldsRequireTracing(RecordInfo* info, |
- clang::CXXMethodDecl* trace); |
- void ReportClassContainsInvalidFields( |
- RecordInfo* info, |
- const CheckFieldsVisitor::Errors& errors); |
- void ReportClassContainsGCRoots(RecordInfo* info, |
- const CheckGCRootsVisitor::Errors& errors); |
- void ReportFinalizerAccessesFinalizedFields( |
- clang::CXXMethodDecl* dtor, |
- const CheckFinalizerVisitor::Errors& errors); |
- void ReportClassRequiresFinalization(RecordInfo* info); |
- void ReportClassDoesNotRequireFinalization(RecordInfo* info); |
- void ReportClassMustDeclareGCMixinTraceMethod(RecordInfo* info); |
- void ReportOverriddenNonVirtualTrace(RecordInfo* info, |
- clang::CXXMethodDecl* trace, |
- clang::CXXMethodDecl* overridden); |
- void ReportMissingTraceDispatchMethod(RecordInfo* info); |
- void ReportMissingFinalizeDispatchMethod(RecordInfo* info); |
- void ReportMissingDispatchMethod(RecordInfo* info, unsigned error); |
- void ReportVirtualAndManualDispatch(RecordInfo* info, |
- clang::CXXMethodDecl* dispatch); |
- void ReportMissingTraceDispatch(const clang::FunctionDecl* dispatch, |
- RecordInfo* receiver); |
- void ReportMissingFinalizeDispatch(const clang::FunctionDecl* dispatch, |
- RecordInfo* receiver); |
- void ReportMissingDispatch(const clang::FunctionDecl* dispatch, |
- RecordInfo* receiver, |
- unsigned error); |
- void ReportDerivesNonStackAllocated(RecordInfo* info, BasePoint* base); |
- void ReportClassOverridesNew(RecordInfo* info, clang::CXXMethodDecl* newop); |
- void ReportClassDeclaresPureVirtualTrace(RecordInfo* info, |
- clang::CXXMethodDecl* trace); |
- void ReportLeftMostBaseMustBePolymorphic(RecordInfo* derived, |
- clang::CXXRecordDecl* base); |
- void ReportBaseClassMustDeclareVirtualTrace(RecordInfo* derived, |
- clang::CXXRecordDecl* base); |
- void NoteManualDispatchMethod(clang::CXXMethodDecl* dispatch); |
- void NoteBaseRequiresTracing(BasePoint* base); |
- void NoteFieldRequiresTracing(RecordInfo* holder, clang::FieldDecl* field); |
- void NotePartObjectContainsGCRoot(FieldPoint* point); |
- void NoteFieldContainsGCRoot(FieldPoint* point); |
- void NoteUserDeclaredDestructor(clang::CXXMethodDecl* dtor); |
- void NoteUserDeclaredFinalizer(clang::CXXMethodDecl* dtor); |
- void NoteBaseRequiresFinalization(BasePoint* base); |
- void NoteField(FieldPoint* point, unsigned note); |
- void NoteField(clang::FieldDecl* field, unsigned note); |
- void NoteOverriddenNonVirtualTrace(clang::CXXMethodDecl* overridden); |
- |
- unsigned diag_class_must_left_mostly_derive_gc_; |
- unsigned diag_class_requires_trace_method_; |
- unsigned diag_base_requires_tracing_; |
- unsigned diag_fields_require_tracing_; |
- unsigned diag_class_contains_invalid_fields_; |
- unsigned diag_class_contains_gc_root_; |
- unsigned diag_class_requires_finalization_; |
- unsigned diag_class_does_not_require_finalization_; |
- unsigned diag_finalizer_accesses_finalized_field_; |
- unsigned diag_finalizer_eagerly_finalized_field_; |
- unsigned diag_overridden_non_virtual_trace_; |
- unsigned diag_missing_trace_dispatch_method_; |
- unsigned diag_missing_finalize_dispatch_method_; |
- unsigned diag_virtual_and_manual_dispatch_; |
- unsigned diag_missing_trace_dispatch_; |
- unsigned diag_missing_finalize_dispatch_; |
- unsigned diag_derives_non_stack_allocated_; |
- unsigned diag_class_overrides_new_; |
- unsigned diag_class_declares_pure_virtual_trace_; |
- unsigned diag_left_most_base_must_be_polymorphic_; |
- unsigned diag_base_class_must_declare_virtual_trace_; |
- |
- unsigned diag_base_requires_tracing_note_; |
- unsigned diag_field_requires_tracing_note_; |
- unsigned diag_raw_ptr_to_gc_managed_class_note_; |
- unsigned diag_ref_ptr_to_gc_managed_class_note_; |
- unsigned diag_reference_ptr_to_gc_managed_class_note_; |
- unsigned diag_own_ptr_to_gc_managed_class_note_; |
- unsigned diag_member_to_gc_unmanaged_class_note_; |
- unsigned diag_stack_allocated_field_note_; |
- unsigned diag_member_in_unmanaged_class_note_; |
- unsigned diag_part_object_to_gc_derived_class_note_; |
- unsigned diag_part_object_contains_gc_root_note_; |
- unsigned diag_field_contains_gc_root_note_; |
- unsigned diag_finalized_field_note_; |
- unsigned diag_eagerly_finalized_field_note_; |
- unsigned diag_user_declared_destructor_note_; |
- unsigned diag_user_declared_finalizer_note_; |
- unsigned diag_base_requires_finalization_note_; |
- unsigned diag_field_requires_finalization_note_; |
- unsigned diag_overridden_non_virtual_trace_note_; |
- unsigned diag_manual_dispatch_method_note_; |
- |
clang::CompilerInstance& instance_; |
- clang::DiagnosticsEngine& diagnostic_; |
+ DiagnosticsReporter reporter_; |
BlinkGCPluginOptions options_; |
RecordCache cache_; |
JsonWriter* json_; |
}; |
- |
#endif // TOOLS_BLINK_GC_PLUGIN_BLINK_GC_PLUGIN_CONSUMER_H_ |