| 
									
										
										
										
											2021-07-11 13:06:54 -07:00
										 |  |  | // compile -G=3 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // Copyright 2020 The Go Authors. All rights reserved. | 
					
						
							|  |  |  | // Use of this source code is governed by a BSD-style | 
					
						
							|  |  |  | // license that can be found in the LICENSE file. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // copied from cmd/compile/internal/types2/testdata/fixedbugs/issue39755.go | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | package p | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-28 13:39:30 -07:00
										 |  |  | func _[T interface{ ~map[string]int }](x T) { | 
					
						
							| 
									
										
										
										
											2021-07-11 13:06:54 -07:00
										 |  |  | 	_ = x == nil | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // simplified test case from issue | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type PathParamsConstraint interface { | 
					
						
							| 
									
										
										
										
											2021-07-28 13:39:30 -07:00
										 |  |  | 	~map[string]string | ~[]struct{ key, value string } | 
					
						
							| 
									
										
										
										
											2021-07-11 13:06:54 -07:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | type PathParams[T PathParamsConstraint] struct { | 
					
						
							|  |  |  | 	t T | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | func (pp *PathParams[T]) IsNil() bool { | 
					
						
							|  |  |  | 	return pp.t == nil // this must succeed | 
					
						
							|  |  |  | } |