| This test checks completion of labels. |
| |
| -- flags -- |
| -ignore_extra_diags |
| |
| -- labels.go -- |
| package labels |
| |
| func _() { |
| goto F //@complete(" //", label1, label5) |
| |
| Foo1: //@item(label1, "Foo1", "label", "const") |
| for a, b := range []int{} { |
| Foo2: //@item(label2, "Foo2", "label", "const") |
| switch { |
| case true: |
| break F //@complete(" //", label2, label1) |
| |
| continue F //@complete(" //", label1) |
| |
| { |
| FooUnjumpable: |
| } |
| |
| goto F //@complete(" //", label1, label2, label4, label5) |
| |
| func() { |
| goto F //@complete(" //", label3) |
| |
| break F //@complete(" //") |
| |
| continue F //@complete(" //") |
| |
| Foo3: //@item(label3, "Foo3", "label", "const") |
| }() |
| } |
| |
| Foo4: //@item(label4, "Foo4", "label", "const") |
| switch interface{}(a).(type) { |
| case int: |
| break F //@complete(" //", label4, label1) |
| } |
| } |
| |
| break F //@complete(" //") |
| |
| continue F //@complete(" //") |
| |
| Foo5: //@item(label5, "Foo5", "label", "const") |
| for { |
| break F //@complete(" //", label5) |
| } |
| |
| return |
| } |