| // errorcheck | |
| // Copyright 2025 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. | |
| // Test weak pointers. | |
| package p | |
| import ( | |
| "runtime" | |
| "weak" | |
| ) | |
| // Adapted from example in https://github.com/golang/go/issues/67552#issuecomment-2639661220 | |
| func conversion() { | |
| p := "hello" | |
| a := weak.Make(&p) | |
| b := (weak.Pointer[*byte])(a) // ERROR "cannot convert a \(variable of struct type weak\.Pointer\[string\]\) to type weak.Pointer\[\*byte\]" | |
| c := b.Value() | |
| println(**c) | |
| runtime.KeepAlive(p) | |
| } |