1 // RUN: %clang_cc1 -std=c++20 -verify %s
2 // RUN: %clang_cc1 -std=c++23 -verify %s
3 // expected-no-diagnostics
5 template<class T
> concept IsOk
= requires() { typename
T::Float
; };
7 template<IsOk T
> struct Thing
;
9 template<IsOk T
> struct Foobar
{
10 template<int> struct Inner
{
11 template<IsOk T2
> friend struct Thing
;
15 struct MyType
{ using Float
=float; };
16 Foobar
<MyType
>::Inner
<0> foobar
;