@@ -45,11 +45,13 @@ struct LineColumnRange {
4545};
4646
4747class CapturedFixItInfo final {
48+ SourceManager *diagSM;
4849 DiagnosticInfo::FixIt FixIt;
4950 mutable LineColumnRange LineColRange;
5051
5152public:
52- CapturedFixItInfo (DiagnosticInfo::FixIt FixIt) : FixIt(FixIt) {}
53+ CapturedFixItInfo (SourceManager &diagSM, DiagnosticInfo::FixIt FixIt)
54+ : diagSM(&diagSM), FixIt(FixIt) {}
5355
5456 CharSourceRange &getSourceRange () { return FixIt.getRange (); }
5557 const CharSourceRange &getSourceRange () const { return FixIt.getRange (); }
@@ -58,13 +60,12 @@ class CapturedFixItInfo final {
5860
5961 // / Obtain the line-column range corresponding to the fix-it's
6062 // / replacement range.
61- const LineColumnRange &getLineColumnRange (const SourceManager &SM,
62- unsigned BufferID) const ;
63+ const LineColumnRange &getLineColumnRange (SourceManager &SM) const ;
6364};
6465
6566struct CapturedDiagnosticInfo {
6667 llvm::SmallString<128 > Message;
67- llvm::SmallString< 32 > FileName ;
68+ std::optional< unsigned > SourceBufferID ;
6869 DiagnosticKind Classification;
6970 SourceLoc Loc;
7071 unsigned Line;
@@ -73,14 +74,14 @@ struct CapturedDiagnosticInfo {
7374 SmallVector<std::string, 1 > EducationalNotes;
7475
7576 CapturedDiagnosticInfo (llvm::SmallString<128 > Message,
76- llvm::SmallString< 32 > FileName ,
77+ std::optional< unsigned > SourceBufferID ,
7778 DiagnosticKind Classification, SourceLoc Loc,
7879 unsigned Line, unsigned Column,
7980 SmallVector<CapturedFixItInfo, 2 > FixIts,
8081 SmallVector<std::string, 1 > EducationalNotes)
81- : Message(Message), FileName(FileName), Classification(Classification ),
82- Loc (Loc), Line(Line), Column(Column), FixIts(FixIts ),
83- EducationalNotes(EducationalNotes) {
82+ : Message(Message), SourceBufferID(SourceBufferID ),
83+ Classification (Classification), Loc(Loc), Line(Line), Column(Column),
84+ FixIts(FixIts), EducationalNotes(EducationalNotes) {
8485 std::sort (EducationalNotes.begin (), EducationalNotes.end ());
8586 }
8687};
@@ -91,25 +92,23 @@ class DiagnosticVerifier : public DiagnosticConsumer {
9192 SourceManager &SM;
9293 std::vector<CapturedDiagnosticInfo> CapturedDiagnostics;
9394 ArrayRef<unsigned > BufferIDs;
94- SmallVector< unsigned , 4 > AdditionalBufferIDs ;
95+ ArrayRef<std::string> AdditionalFilePaths ;
9596 bool AutoApplyFixes;
9697 bool IgnoreUnknown;
9798 bool UseColor;
9899 ArrayRef<std::string> AdditionalExpectedPrefixes;
99100
100101public:
101102 explicit DiagnosticVerifier (SourceManager &SM, ArrayRef<unsigned > BufferIDs,
103+ ArrayRef<std::string> AdditionalFilePaths,
102104 bool AutoApplyFixes, bool IgnoreUnknown,
103105 bool UseColor,
104106 ArrayRef<std::string> AdditionalExpectedPrefixes)
105- : SM(SM), BufferIDs(BufferIDs), AutoApplyFixes(AutoApplyFixes),
106- IgnoreUnknown(IgnoreUnknown), UseColor(UseColor),
107+ : SM(SM), BufferIDs(BufferIDs), AdditionalFilePaths(AdditionalFilePaths),
108+ AutoApplyFixes(AutoApplyFixes), IgnoreUnknown(IgnoreUnknown),
109+ UseColor(UseColor),
107110 AdditionalExpectedPrefixes(AdditionalExpectedPrefixes) {}
108111
109- void appendAdditionalBufferID (unsigned bufferID) {
110- AdditionalBufferIDs.push_back (bufferID);
111- }
112-
113112 virtual void handleDiagnostic (SourceManager &SM,
114113 const DiagnosticInfo &Info) override ;
115114
0 commit comments