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.rs | 9 |
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), + } + } +} |