go/types: add CheckExpr function to type-check an expression
In IDE-like applications (and also in tests), there is often a need to type-check an expression as if it appeared at a particular position in the source code of an already typed-checked package. Eval was added to address this need, but did so only partially, stopping short of exposing a type-annotated expression tree. This makes it impossible to resolve an expression such as new(T).x and discover what Object x refers to. CheckExpr exposes that generality. Eval is now implemented in terms of CheckExpr. This change includes a test that demonstrates the object resolution functionality just described. Historical context: - https://go-review.googlesource.com/c/tools/+/10800 - https://codereview.appspot.com/10748044/ Change-Id: I715ba934b9fc0c9ceb61270e20c5f91f4eff20c3 Reviewed-on: https://go-review.googlesource.com/c/go/+/144677 Run-TryBot: Alan Donovan <adonovan@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
Showing
Please register or sign in to comment