--- /dev/null
+// Copyright 2019 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.
+
+package fuzzy
+
+func _() {
+ var a struct {
+ fabar int
+ fooBar string
+ }
+
+ a.fabar //@item(fuzzFabarField, "a.fabar", "int", "field")
+ a.fooBar //@item(fuzzFooBarField, "a.fooBar", "string", "field")
+
+ afa //@fuzzy(" //", fuzzFabarField, fuzzFooBarField)
+ afb //@fuzzy(" //", fuzzFooBarField, fuzzFabarField)
+
+ fab //@fuzzy(" //", fuzzFabarField)
+
+ var myString string
+ myString = af //@fuzzy(" //", fuzzFooBarField, fuzzFabarField)
+
+ var b struct {
+ c struct {
+ d struct {
+ e struct {
+ abc string
+ }
+ abc float32
+ }
+ abc bool
+ }
+ abc int
+ }
+
+ b.abc //@item(fuzzABCInt, "b.abc", "int", "field")
+ b.c.abc //@item(fuzzABCbool, "b.c.abc", "bool", "field")
+ b.c.d.abc //@item(fuzzABCfloat, "b.c.d.abc", "float32", "field")
+ b.c.d.e.abc //@item(fuzzABCstring, "b.c.d.e.abc", "string", "field")
+
+ // in depth order by default
+ abc //@fuzzy(" //", fuzzABCInt, fuzzABCbool, fuzzABCfloat)
+
+ // deep candidate that matches expected type should still ranked first
+ var s string
+ s = abc //@fuzzy(" //", fuzzABCstring, fuzzABCInt, fuzzABCbool)
+}