<p dir="auto">by <strong>sam.falvo</strong>:</p>
<pre class="notranslate">What does 'go version' print?
go version go1.2 darwin/amd64

What steps reproduce the problem?
If possible, include a link to a program on play.golang.org.

0.  export GOPATH=$(pwd)
1.  go get github.com/mailgun/mailgun-go
2.  (cd src/github.com/mailgun/mailgun-go &amp;&amp; git checkout
create-acceptance-tests)
3.  go fmt github.com/mailgun/mailgun-go/acceptance

What happened?
It prints:
"""
can't load package: package github.com/mailgun/mailgun-go/acceptance: no buildable Go
source files in /Users/sfalvo/go/mailgun-go/src/github.com/mailgun/mailgun-go/acceptance
"""

What should have happened instead?
It should have reformatted the sources, printing the list of filenames it affected;
otherwise, it should have just returned to the shell with no output, indicating no
changes have been made, just as it does for 'normal' sources.</pre>
<pre class="notranslate">This issue serves as a catch-all for the currently known issues with go/types so that
they don't get forgotten.

Known bugs (in addition to already filed bugs):
- Corner-case legal recursive structs and interface types may not be accepted. The
type-checker must not rely on those types' structure before the types are completely
defined.

Missing features:
- Some built-ins don't check parameters fully, yet (e.g. append).
- Use of labels is only partially checked.
- Unused variables and imports are not reported.
- Interface vs non-interface comparisons are not correctly implemented.
- Switch statements don't check duplicate cases for all types for which it is required.
- Some built-ins may not be callable if in statement-context.
- The reported signature for builtin "expressions" should be a *Signature
specialized for the given arguments.

API:
- Type and Method factory functions need to revisited and all properly documented. There
is a balance between external need and desire to protect internal invariants in case of
API misuse.
- Decide if gcimporter should be in separate package.

Optimizations:
- Method sets should always compute the sets for both pointer and value receiver types
and cache them. Will avoid repeated and expensive method set computation.
- Method sets should be used for some of the assignment checks where
"implements" functionality is needed.

Cleanups:
- Type-checking of expressions should be cleaned up. There is duplication in the code
that can be avoided. See the relevant TODOs.</pre>