Index: parser.c
===================================================================
--- parser.c	(revision 203704)
+++ parser.c	(working copy)
@@ -14876,6 +14876,7 @@ cp_parser_nonclass_name (cp_parser* pars
   // introduction (if followed by '{').
   if (TREE_CODE (type_decl) == OVERLOAD)
   {
+    // Determine whether the overload refers to a concept.
     if (tree decl = finish_concept_name (type_decl))
       return decl;
   }
Index: constraint.cc
===================================================================
--- constraint.cc	(revision 203704)
+++ constraint.cc	(working copy)
@@ -883,9 +883,11 @@ finish_concept_name (tree decl)
   if (template_parm_scope_p ())
     return describe_template_parm (proto, fn);
 
-  // For the time being don't allow shorthand constraints in
-  // non-template parameter scopes.
-  sorry ("constrained declaration");
+  // NOTE: We may need to be smarter about this since there are lots of
+  // places outside of a template parameter scope we'll want to use
+  // concept names (function arguments, function return types, result
+  // constraints, variable declarations, etc.). 
+
   return NULL_TREE;
 }
 
