// Copyright 2018 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. // This file opens a back door to the parser for golang.org/x/tools/go/gccgoexportdata. package gccgoimporter import ( "go/types" "io" ) // Parse reads and parses gccgo export data from in and constructs a // Package, inserting it into the imports map. func Parse(in io.Reader, imports map[string]*types.Package, path string) (_ *types.Package, err error) { var p parser p.init(path, in, imports) defer func() { switch x := recover().(type) { case nil: // success case importError: err = x default: panic(x) // resume unexpected panic } }() pkg := p.parsePackage() imports[path] = pkg return pkg, err }