Thank you, Ian. I will give this a shot. I currently solved this by 
modifying the imported package to accept a *context.Context instead of 
golang.org/x/net/context.Context.

On Friday, April 14, 2017 at 4:09:27 PM UTC-7, Ian Lance Taylor wrote:
>
> On Fri, Apr 14, 2017 at 3:34 PM, Ramachandran Gurumoorthy 
> <ram...@gmail.com <javascript:>> wrote: 
> > 
> > I am working on a piece of code that imports "context". All the APIs 
> include 
> > (foobar context.Context) variable. 
> > 
> > Another imported package expects "golang.org/x/net/context".Context as 
> an 
> > argument to one of its API.  When I try to supply foobar to the api 
> > expecting ("golang.org/x/net/context".Context), I get a compiler error. 
> > 
> > cannot use &ctxt (type *"context".Context) as type 
> > *"golang.org/x/net/context".Context in argument to 
> > "gopkg.in/spacemonkeygo/monitor.v1/trace".Trace: 
> > *"golang.org/x/net/context".Context is pointer to interface, not 
> interface 
> > 
> > Question: Is there a way to cast context.Context to 
> > "golang.org/x/net/context".Context? 
>
> In 1.9, type aliases will address this problem.  In 1.8 and earlier, 
> no, there is no way. 
>
> That said, it's odd to pass a *context.Context.  A context.Context is 
> an interface type, and can normally  be passed by value.  If the API 
> genuinely does require a pointer, then you can workaround the problem 
> by writing something along the lines of 
>
> import oldcontext "golang.org/x/net/context" 
>
>     var oldctxt oldcontext.Context = ctxt 
>     trace.F(&oldctxt) 
>     ctxt = oldctxt 
>
> Since the two different Context types are both interface types with 
> the same methods, they are assignment-compatible. 
>
> Ian 
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to