MCPcopy
hub / github.com/google/mangle / findPackage

Function findPackage

packages/packages.go:197–226  ·  view source on GitHub ↗
(decls []ast.Decl)

Source from the content-addressed store, hash-verified

195}
196
197func findPackage(decls []ast.Decl) (Package, error) {
198 name := ""
199 atoms := []ast.Atom{}
200 for _, decl := range decls {
201 if decl.DeclaredAtom.Predicate != symbols.Package {
202 continue
203 }
204 for _, desc := range decl.Descr {
205 if desc.Predicate == nameSym {
206 if len(desc.Args) != 1 {
207 return Package{}, fmt.Errorf("unexpected length %v", len(desc.Args))
208 }
209 n, ok := desc.Args[0].(ast.Constant)
210 if !ok {
211 return Package{}, fmt.Errorf("invalid description %v for name", desc)
212 }
213
214 var err error
215 name, err = n.StringValue()
216 if err != nil {
217 return Package{}, err
218 }
219 } else {
220 atoms = append(atoms, desc)
221 }
222 }
223 break
224 }
225 return Package{Name: name, Atoms: atoms}, nil
226}
227
228// Merge merges two packages.
229func (p *Package) Merge(other Package) error {

Callers 1

ExtractFunction · 0.85

Calls 1

StringValueMethod · 0.80

Tested by

no test coverage detected