--- /dev/null
+package pkg
+
+func fn(i interface{}, x interface{}) {
+ if _, ok := i.(string); ok && i != nil { // want `when ok is true, i can't be nil`
+ }
+ if _, ok := i.(string); i != nil && ok { // want `when ok is true, i can't be nil`
+ }
+ if _, ok := i.(string); i != nil || ok {
+ }
+ if _, ok := i.(string); i != nil && !ok {
+ }
+ if _, ok := i.(string); i == nil && ok {
+ }
+ if i != nil {
+ if _, ok := i.(string); ok { // want `when ok is true, i can't be nil`
+ }
+ }
+ if i != nil {
+ if _, ok := i.(string); ok {
+ }
+ println(i)
+ }
+ if i == nil {
+ if _, ok := i.(string); ok {
+ }
+ }
+ if i != nil {
+ if _, ok := i.(string); !ok {
+ }
+ }
+ if x != nil {
+ if _, ok := i.(string); ok {
+ }
+ }
+ if i != nil {
+ if _, ok := x.(string); ok {
+ }
+ }
+}