Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-expand/src/files.rs')
-rw-r--r--crates/hir-expand/src/files.rs9
1 files changed, 9 insertions, 0 deletions
diff --git a/crates/hir-expand/src/files.rs b/crates/hir-expand/src/files.rs
index 20f484f672..d41f69812e 100644
--- a/crates/hir-expand/src/files.rs
+++ b/crates/hir-expand/src/files.rs
@@ -461,3 +461,12 @@ impl<N: AstNode> InFile<N> {
Some(InRealFile::new(file_id, value))
}
}
+
+impl<T> InFile<T> {
+ pub fn into_real_file(self) -> Result<InRealFile<T>, InFile<T>> {
+ match self.file_id.repr() {
+ HirFileIdRepr::FileId(file_id) => Ok(InRealFile { file_id, value: self.value }),
+ HirFileIdRepr::MacroFile(_) => Err(self),
+ }
+ }
+}