@@ -10479,6 +10479,15 @@ any_template_parm_r (tree t, void *data)
}
break;
+ case LAMBDA_EXPR:
+ {
+ /* Look in the parms and body. */
+ tree fn = lambda_function (t);
+ WALK_SUBTREE (TREE_TYPE (fn));
+ WALK_SUBTREE (DECL_SAVED_TREE (fn));
+ }
+ break;
+
default:
break;
}
new file mode 100644
@@ -0,0 +1,10 @@
+// PR c++/92556
+// { dg-do compile { target c++2a } }
+
+// Having this as a hard error is consistent with template argument deduction;
+// it's an open core issue (jason 2020-02-14).
+template <class T> concept has_value
+ = requires { []{T::value;}; }; // { dg-error "" }
+template <has_value T> void f() { }
+template <class T> void f() { }
+void q() { f<int>(); }