internal void AddTouched(AST <Program> p, InstallKind kind) { Contract.Requires(p != null); InstallStatus status; if (!touched.TryFindValue(p.Node.Name, out status)) { var inst = new InstallStatus(p, kind); touched.Add(p.Node.Name, inst); touchedOrder.AddLast(inst); } else if (status.Status == InstallKind.Failed || kind == InstallKind.Failed) { status.Status = InstallKind.Failed; } }
internal InstallStatus(AST <Program> program, InstallKind status) { Program = program; Status = status; }