func (spec *FuncLocationSpec) Match(sym *gosym.Sym) bool { if spec.BaseName != sym.BaseName() { return false } recv := stripReceiverDecoration(sym.ReceiverName()) if spec.ReceiverName != "" && spec.ReceiverName != recv { return false } if spec.PackageName != "" { if spec.AbsolutePackage { if spec.PackageName != sym.PackageName() { return false } } else { if !partialPathMatch(spec.PackageName, sym.PackageName()) { return false } } } if spec.PackageOrReceiverName != "" && !partialPathMatch(spec.PackageOrReceiverName, sym.PackageName()) && spec.PackageOrReceiverName != recv { return false } return true }
func (spec *FuncLocationSpec) Match(sym *gosym.Sym) bool { if spec.BaseName != sym.BaseName() { return false } recv := stripReceiverDecoration(sym.ReceiverName()) if spec.ReceiverName != "" && spec.ReceiverName != recv { return false } if spec.PackageName != "" && spec.PackageName != sym.PackageName() { return false } if spec.PackageOrReceiverName != "" && spec.PackageOrReceiverName != sym.PackageName() && spec.PackageOrReceiverName != recv { return false } return true }