error:  no matching function for call to ‘pet(lizard)’
        Function main
        File ../../src/gcc/testsuite/g++.dg/concepts/nested-diagnostics-1.C
        Line 26
        Column 6
        
          
            |    26 |   |   pet(lizard{}); // { dg-error "no matching function for call to 'pet\\\(lizard\\\)'" } | 
            |       |   |   ~~~^~~~~~~~~~ | 
          
        
        
          - 
            
          
 
          
            - 
              
                candidate 1: ‘template<class auto:1>  requires  pettable<auto:1> void pet(auto:1)’
                Line 21
                Column 6
                
                  
                    |    21 |   | void pet(pettable auto t); | 
                    |       |   |      ^~~ | 
                  
                
               
             
            
              - 
                
                  template argument deduction/substitution failed:
                 
               
              
                - 
                  
                    constraints not satisfied
                   
                 
                
                  - 
                    
                      no operand of the disjunction is satisfied
                      Function pet
                      Line 19
                      Column 38
                      
                        
                          |    19 |   | concept pettable = has_member_pet<T> or has_default_pet<T>; | 
                          |       |   |                    ~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~ | 
                        
                      
                     
                   
                  
                    - 
                      
                        the operand ‘has_member_pet<T>’ is unsatisfied because
                        Line 19
                        Column 20
                        
                          
                            |    19 |   | concept pettable = has_member_pet<T> or has_default_pet<T>; | 
                            |       |   |                    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | 
                          
                        
                       
                     
                    
                      - 
                        
                          the required expression ‘t.pet()’ is invalid, because
                          Line 13
                          Column 47
                          
                            
                              |    13 |   | concept has_member_pet = requires(T t) { t.pet(); }; | 
                              |       |   |                                          ~~~~~^~ | 
                            
                          
                         
                       
                      
                        - 
                          
                            ‘struct lizard’ has no member named ‘pet’
                            Line 13
                            Column 44
                            
                              
                                |    13 |   | concept has_member_pet = requires(T t) { t.pet(); }; | 
                                |       |   |                                          ~~^~~ | 
                              
                            
                           
                         
                      
                    
                    - 
                      
                        the operand ‘has_default_pet<T>’ is unsatisfied because
                        Line 19
                        Column 41
                        
                          
                            |    19 |   | concept pettable = has_member_pet<T> or has_default_pet<T>; | 
                            |       |   |                    ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~ | 
                          
                        
                       
                     
                    
                      - 
                        
                          ‘is_pettable’ is not a member of ‘lizard’
                          Line 16
                          Column 30
                          
                            
                              |    16 |   | concept has_default_pet = T::is_pettable; | 
                              |       |   |                              ^~~~~~~~~~~ | 
                            
                          
                         
                       
                    
                  
                
              
            
            - 
              
                candidate 2: ‘void pet(dog)’
                Function main
                Line 9
                Column 6
                
               
             
            
              - 
                
                  no known conversion for argument 1 from ‘lizard’ to ‘dog’
                  Line 9
                  Column 10
                  
                 
               
            
            - 
              
                candidate 3: ‘void pet(cat)’
                Line 10
                Column 6
                
               
             
            
              - 
                
                  no known conversion for argument 1 from ‘lizard’ to ‘cat’
                  Line 10
                  Column 10