예제 #1
0
                    // Replacement returns the replacement for mod, if any, from go.mod.
                    // If there is no replacement for mod, Replacement returns
                    // a module.Version with Path == "".
                    public static module.Version Replacement(module.Version mod)
                    {
                        if (index != null)
                        {
                            {
                                var r__prev2 = r;

                                var(r, ok) = index.replace[mod];

                                if (ok)
                                {
                                    return(r);
                                }

                                r = r__prev2;
                            }

                            {
                                var r__prev2 = r;

                                (r, ok) = index.replace[new module.Version(Path: mod.Path)];

                                if (ok)
                                {
                                    return(r);
                                }

                                r = r__prev2;
                            }
                        }

                        return(new module.Version());
                    }
예제 #2
0
 public ImportMissingError(@string Path = default, module.Version Module = default, error QueryErr = default, @string newMissingVersion = default)
 {
     this.Path              = Path;
     this.Module            = Module;
     this.QueryErr          = QueryErr;
     this.newMissingVersion = newMissingVersion;
 }
예제 #3
0
 public PackageNotInModuleError(module.Version Mod = default, module.Version Replacement = default, @string Query = default, @string Pattern = default)
 {
     this.Mod         = Mod;
     this.Replacement = Replacement;
     this.Query       = Query;
     this.Pattern     = Pattern;
 }
예제 #4
0
 public modGraphNode(module.Version m = default, slice <module.Version> required = default, module.Version upgrade = default, error err = default)
 {
     this.m        = m;
     this.required = required;
     this.upgrade  = upgrade;
     this.err      = err;
 }
예제 #5
0
 public fileJSON(module.Version Module = default, @string Go = default, slice <requireJSON> Require = default, slice <module.Version> Exclude = default, slice <replaceJSON> Replace = default)
 {
     this.Module  = Module;
     this.Go      = Go;
     this.Require = Require;
     this.Exclude = Exclude;
     this.Replace = Replace;
 }
예제 #6
0
 public loadPkg(@string path = default, module.Version mod = default, @string dir = default, slice <ptr <loadPkg> > imports = default, error err = default, ref ptr <loadPkg> stack = default, ref ptr <loadPkg> test = default, ref ptr <loadPkg> testOf = default, slice <@string> testImports = default)
 {
     this.path        = path;
     this.mod         = mod;
     this.dir         = dir;
     this.imports     = imports;
     this.err         = err;
     this.stack       = stack;
     this.test        = test;
     this.testOf      = testOf;
     this.testImports = testImports;
 }
예제 #7
0
                    // readVendorList reads the list of vendored modules from vendor/modules.txt.
                    private static void readVendorList()
                    {
                        vendorOnce.Do(() =>
                        {
                            vendorList      = null;
                            vendorPkgModule = make_map <@string, module.Version>();
                            vendorVersion   = make_map <@string, @string>();
                            vendorMeta      = make_map <module.Version, vendorMetadata>();
                            var(data, err)  = ioutil.ReadFile(filepath.Join(ModRoot(), "vendor/modules.txt"));
                            if (err != null)
                            {
                                if (!errors.Is(err, os.ErrNotExist))
                                {
                                    @base.Fatalf("go: %s", err);
                                }

                                return;
                            }

                            module.Version mod = default;
                            foreach (var(_, line) in strings.Split(string(data), "\n"))
                            {
                                if (strings.HasPrefix(line, "# "))
                                {
                                    var f = strings.Fields(line);

                                    if (len(f) < 3L)
                                    {
                                        continue;
                                    }

                                    if (semver.IsValid(f[2L]))
                                    {
                                        // A module, but we don't yet know whether it is in the build list or
                                        // only included to indicate a replacement.
                                        mod = new module.Version(Path: f[1], Version: f[2]);
                                        f   = f[3L..];
                                    }
예제 #8
0
 public modFileIndex(slice <byte> data = default, bool dataNeedsFix = default, module.Version module = default, @string goVersion = default, map <module.Version, requireMeta> require = default, map <module.Version, module.Version> replace = default, map <module.Version, bool> exclude = default)
 {
     this.data         = data;
     this.dataNeedsFix = dataNeedsFix;
     this.module       = module;
     this.goVersion    = goVersion;
     this.require      = require;
     this.replace      = replace;
     this.exclude      = exclude;
 }
예제 #9
0
 // lookupSumDB returns the Go checksum database's go.sum lines for the given module,
 // along with the name of the database.
 private static (@string, slice <@string>, error) lookupSumDB(module.Version mod)
 {
     @string         dbname = default;
     slice <@string> lines  = default;
     error           err    = default !;
예제 #10
0
 public vendorMetadata(bool Explicit = default, module.Version Replacement = default)
 {
     this.Explicit    = Explicit;
     this.Replacement = Replacement;
 }
예제 #11
0
 // useSumDB reports whether to use the Go checksum database for the given module.
 private static bool useSumDB(module.Version mod)
 {
     return(cfg.GOSUMDB != "off" && !get.Insecure && !str.GlobsMatchPath(cfg.GONOSUMDB, mod.Path));
 }
예제 #12
0
파일: bootstrap.cs 프로젝트: zjmit/go2cs
 private static bool useSumDB(module.Version mod)
 {
     return(false);
 }
예제 #13
0
 public lostUpgradeReqs(mvs.Reqs Reqs = default, module.Version lost = default)
 {
     this.Reqs = Reqs;
     this.lost = lost;
 }
예제 #14
0
 private delegate(module.Version, error) PreviousByVal(T value, module.Version m);
예제 #15
0
 public Exclude(module.Version Mod = default, ref ptr <Line> Syntax = default)
 {
     this.Mod    = Mod;
     this.Syntax = Syntax;
 }
예제 #16
0
 private delegate(module.Version, error) UpgradeByVal(T value, module.Version m);
예제 #17
0
 private delegate(module.Version, error) UpgradeByRef(ref T value, module.Version m);
예제 #18
0
 private delegate(module.Version, error) RequiredByRef(ref T value, module.Version m);
예제 #19
0
 private delegate(module.Version, error) RequiredByVal(T value, module.Version m);
예제 #20
0
 public @override(module.Version target = default, slice <module.Version> list = default, Reqs Reqs = default)
 {
     this.target = target;
     this.list   = list;
     this.Reqs   = Reqs;
 }
예제 #21
0
 public Require(module.Version Mod = default, bool Indirect = default, ref ptr <Line> Syntax = default)
 {
     this.Mod      = Mod;
     this.Indirect = Indirect;
     this.Syntax   = Syntax;
 }
예제 #22
0
 public querySpec(@string path = default, @string vers = default, bool forceModulePath = default, module.Version prevM = default)
 {
     this.path            = path;
     this.vers            = vers;
     this.forceModulePath = forceModulePath;
     this.prevM           = prevM;
 }
예제 #23
0
 // Allowed reports whether module m is allowed (not excluded) by the main module's go.mod.
 public static bool Allowed(module.Version m)
 {
     return(index == null || !index.exclude[m]);
 }
예제 #24
0
 // Download downloads the specific module version to the
 // local download cache and returns the name of the directory
 // corresponding to the root of the module's file tree.
 public static (@string, error) Download(module.Version mod)
 {
     @string dir = default;
     error err = default!;
예제 #25
0
파일: bootstrap.cs 프로젝트: zjmit/go2cs
 private static (@string, slice <@string>, error) lookupSumDB(module.Version mod) => func((_, panic, __) =>
예제 #26
0
 public Replace(module.Version Old = default, module.Version New = default, ref ptr <Line> Syntax = default)
 {
     this.Old    = Old;
     this.New    = New;
     this.Syntax = Syntax;
 }
예제 #27
0
 private delegate(module.Version, error) PreviousByRef(ref T value, module.Version m);
예제 #28
0
 public QueryResult(module.Version Mod = default, ref ptr <modfetch.RevInfo> Rev = default, slice <@string> Packages = default)
 {
     this.Mod      = Mod;
     this.Rev      = Rev;
     this.Packages = Packages;
 }
예제 #29
0
 public buildListErrorElem(module.Version m = default, @string nextReason = default)
 {
     this.m          = m;
     this.nextReason = nextReason;
 }
예제 #30
0
 public (module.Version, error) Previous(module.Version m) => s_PreviousByRef?.Invoke(ref this, m) ?? s_PreviousByVal?.Invoke(this, m) ?? Reqs?.Previous(m) ?? throw new PanicException(RuntimeErrorPanic.NilPointerDereference);