From e45312e5a0557b2d79028bd5f869f979bc2b5924 Mon Sep 17 00:00:00 2001 From: Tim Chevalier Date: Mon, 7 Jan 2013 16:12:39 -0800 Subject: [PATCH] Suppress type error message involving a function type whose result is ty_err In general it would be good to suppress any messages involving types that have ty_err as a sub-component, but this works for now. --- src/librustc/middle/typeck/infer/mod.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/librustc/middle/typeck/infer/mod.rs b/src/librustc/middle/typeck/infer/mod.rs index 279318079b9a..801b0966f75a 100644 --- a/src/librustc/middle/typeck/infer/mod.rs +++ b/src/librustc/middle/typeck/infer/mod.rs @@ -741,6 +741,14 @@ impl infer_ctxt { // Don't report an error if actual type is ty_err. match ty::get(actual_ty).sty { ty::ty_err => return, + // Should really not report an error if the type + // has ty_err anywhere as a component, but that's + // annoying since we haven't written a visitor for + // ty::t yet + ty::ty_fn(fty) => match ty::get(fty.sig.output).sty { + ty::ty_err => return, + _ => () + }, _ => () } let error_str = err.map_default(~"", |t_err|