@@ -72,7 +72,7 @@ use rustc_front::intravisit::{self, FnKind, Visitor};
7272use rustc_front:: hir;
7373use rustc_front:: hir:: { Arm , BindByRef , BindByValue , BindingMode , Block } ;
7474use rustc_front:: hir:: Crate ;
75- use rustc_front:: hir:: { Expr , ExprAgain , ExprBreak , ExprField } ;
75+ use rustc_front:: hir:: { Expr , ExprAgain , ExprBreak , ExprCall , ExprField } ;
7676use rustc_front:: hir:: { ExprLoop , ExprWhile , ExprMethodCall } ;
7777use rustc_front:: hir:: { ExprPath , ExprStruct , FnDecl } ;
7878use rustc_front:: hir:: { ForeignItemFn , ForeignItemStatic , Generics } ;
@@ -423,7 +423,7 @@ fn resolve_error<'b, 'a: 'b, 'tcx: 'a>(resolver: &'b Resolver<'a, 'tcx>,
423423 msg) ;
424424
425425 match context {
426- UnresolvedNameContext :: Other => { } // no help available
426+ UnresolvedNameContext :: Other => { } // no help available
427427 UnresolvedNameContext :: PathIsMod ( id) => {
428428 let mut help_msg = String :: new ( ) ;
429429 let parent_id = resolver. ast_map . get_parent_node ( id) ;
@@ -436,17 +436,22 @@ fn resolve_error<'b, 'a: 'b, 'tcx: 'a>(resolver: &'b Resolver<'a, 'tcx>,
436436 module = & * path,
437437 ident = ident. node) ;
438438 }
439-
440439 ExprMethodCall ( ident, _, _) => {
441440 help_msg = format ! ( "To call a function from the \
442441 `{module}` module, use \
443442 `{module}::{ident}(..)`",
444443 module = & * path,
445444 ident = ident. node) ;
446445 }
447-
448- _ => { } // no help available
446+ ExprCall ( _, _) => {
447+ help_msg = format ! ( "No function corresponds to `{module}(..)`" ,
448+ module = & * path) ;
449+ }
450+ _ => { } // no help available
449451 }
452+ } else {
453+ help_msg = format ! ( "Module `{module}` cannot be the value of an expression" ,
454+ module = & * path) ;
450455 }
451456
452457 if !help_msg. is_empty ( ) {
0 commit comments