| |
| -- flags -- |
| -ignore_extra_diags |
| |
| -- go.mod -- |
| module unimported.test |
| |
| go 1.18 |
| |
| -- unimported/export_test.go -- |
| package unimported |
| |
| var TestExport int //@item(testexport, "TestExport", "var (from \"unimported.test/unimported\")", "var") |
| |
| -- signature/signature.go -- |
| package signature |
| |
| func Foo() {} |
| |
| -- foo/foo.go -- |
| package foo |
| |
| type StructFoo struct{ F int } |
| |
| -- baz/baz.go -- |
| package baz |
| |
| import ( |
| f "unimported.test/foo" |
| ) |
| |
| var FooStruct f.StructFoo |
| |
| -- unimported/unimported.go -- |
| package unimported |
| |
| func _() { |
| http //@complete("p", http, httptest, httptrace, httputil) |
| // container/ring is extremely unlikely to be imported by anything, so shouldn't have type information. |
| ring.Ring //@complete(re"R()ing", ringring) |
| signature.Foo //@complete("Foo", signaturefoo) |
| |
| context.Bac //@complete(" //", contextBackground) |
| } |
| |
| // Create markers for unimported std lib packages. Only for use by this test. |
| /* http */ //@item(http, "http", "\"net/http\"", "package") |
| /* httptest */ //@item(httptest, "httptest", "\"net/http/httptest\"", "package") |
| /* httptrace */ //@item(httptrace, "httptrace", "\"net/http/httptrace\"", "package") |
| /* httputil */ //@item(httputil, "httputil", "\"net/http/httputil\"", "package") |
| |
| /* ring.Ring */ //@item(ringring, "Ring", "(from \"container/ring\")", "var") |
| |
| /* signature.Foo */ //@item(signaturefoo, "Foo", "func (from \"unimported.test/signature\")", "func") |
| |
| /* context.Background */ //@item(contextBackground, "Background", "func (from \"context\")", "func") |
| |
| // Now that we no longer type-check imported completions, |
| // we don't expect the context.Background().Err method (see golang/go#58663). |
| /* context.Background().Err */ //@item(contextBackgroundErr, "Background().Err", "func (from \"context\")", "method") |
| |
| -- unimported/unimported_cand_type.go -- |
| package unimported |
| |
| import ( |
| _ "context" |
| |
| "unimported.test/baz" |
| ) |
| |
| func _() { |
| foo.StructFoo{} //@item(litFooStructFoo, "foo.StructFoo{}", "struct{...}", "struct") |
| |
| // We get the literal completion for "foo.StructFoo{}" even though we haven't |
| // imported "foo" yet. |
| baz.FooStruct = f //@snippet(" //", litFooStructFoo, "foo.StructFoo{$0\\}") |
| } |
| |
| -- unimported/x_test.go -- |
| package unimported_test |
| |
| import ( |
| "testing" |
| ) |
| |
| func TestSomething(t *testing.T) { |
| _ = unimported.TestExport //@complete("TestExport", testexport) |
| } |