aboutsummaryrefslogtreecommitdiff
path: root/crates/hir_ty/src/display.rs
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2021-03-22 12:35:44 +0000
committerGitHub <[email protected]>2021-03-22 12:35:44 +0000
commit3af1885bd2c4d3470d203a216488946ee8572970 (patch)
tree740ab2281d5ab9c779bd834a01aee3d68cdec7b3 /crates/hir_ty/src/display.rs
parente220d3d5079eaabf485d8966e1eb3bb90d181c23 (diff)
parent2e09714dfe06f6cd252d0708a04741a5c36168e4 (diff)
Merge #8144
8144: bail out early for source code closures r=Veykril a=hi-rustin close https://github.com/rust-analyzer/rust-analyzer/issues/8084 Co-authored-by: hi-rustin <[email protected]>
Diffstat (limited to 'crates/hir_ty/src/display.rs')
-rw-r--r--crates/hir_ty/src/display.rs6
1 files changed, 6 insertions, 0 deletions
diff --git a/crates/hir_ty/src/display.rs b/crates/hir_ty/src/display.rs
index cc6b93d37..6149067c7 100644
--- a/crates/hir_ty/src/display.rs
+++ b/crates/hir_ty/src/display.rs
@@ -190,6 +190,7 @@ impl DisplayTarget {
190pub enum DisplaySourceCodeError { 190pub enum DisplaySourceCodeError {
191 PathNotFound, 191 PathNotFound,
192 UnknownType, 192 UnknownType,
193 Closure,
193} 194}
194 195
195pub enum HirDisplayError { 196pub enum HirDisplayError {
@@ -543,6 +544,11 @@ impl HirDisplay for Ty {
543 } 544 }
544 } 545 }
545 TyKind::Closure(.., substs) => { 546 TyKind::Closure(.., substs) => {
547 if f.display_target.is_source_code() {
548 return Err(HirDisplayError::DisplaySourceCodeError(
549 DisplaySourceCodeError::Closure,
550 ));
551 }
546 let sig = substs[0].callable_sig(f.db); 552 let sig = substs[0].callable_sig(f.db);
547 if let Some(sig) = sig { 553 if let Some(sig) = sig {
548 if sig.params().is_empty() { 554 if sig.params().is_empty() {