File tree Expand file tree Collapse file tree 2 files changed +12
-0
lines changed Expand file tree Collapse file tree 2 files changed +12
-0
lines changed Original file line number Diff line number Diff line change @@ -179,6 +179,15 @@ void ModuleFile::fatal(llvm::Error error) const {
179
179
Core->fatal (diagnoseFatal (std::move (error)));
180
180
}
181
181
182
+ SourceLoc ModuleFile::getSourceLoc () const {
183
+ auto &SourceMgr = getContext ().Diags .SourceMgr ;
184
+ auto filename = getModuleFilename ();
185
+ auto bufferID = SourceMgr.getIDForBufferIdentifier (filename);
186
+ if (!bufferID)
187
+ bufferID = SourceMgr.addMemBufferCopy (StringRef (), filename);
188
+ return SourceMgr.getLocForBufferStart (*bufferID);
189
+ }
190
+
182
191
llvm::Error ModuleFile::diagnoseFatal (llvm::Error error) const {
183
192
if (FileContext)
184
193
getContext ().Diags .diagnose (SourceLoc (), diag::serialization_fatal,
Original file line number Diff line number Diff line change @@ -667,6 +667,9 @@ class ModuleFile
667
667
getTransitiveLoadingBehavior (const Dependency &dependency,
668
668
bool forTestable) const ;
669
669
670
+ // / Generate a \c SourceLoc pointing at the loaded swiftmodule file.
671
+ SourceLoc getSourceLoc () const ;
672
+
670
673
// / Returns `true` if there is a buffer that might contain source code where
671
674
// / other parts of the compiler could have emitted diagnostics, to indicate
672
675
// / that the object must be kept alive as long as the diagnostics exist.
You can’t perform that action at this time.
0 commit comments