repochecker: Add loop dependency detection
This commit is contained in:
parent
b784c448a0
commit
a8fa58e111
@ -506,6 +506,26 @@ func CheckExerciceFlags(i Importer, exercice *fic.Exercice, files []string, exce
|
||||
}
|
||||
}
|
||||
|
||||
// Check dependency loop
|
||||
deps := flag.FlagsDeps
|
||||
deploppcheck:
|
||||
for i := 0; i < len(deps); i++ {
|
||||
if deps[i] == flagid {
|
||||
errs = append(errs, NewFlagError(exercice, nil, flag.Line, fmt.Errorf("flag dependency loop detected: flag id=%d: depends on itself", flagid)))
|
||||
break
|
||||
}
|
||||
|
||||
for _, d := range flags[deps[i]].FlagsDeps {
|
||||
for _, dd := range deps {
|
||||
if dd == d {
|
||||
errs = append(errs, NewFlagError(exercice, nil, flag.Line, fmt.Errorf("flag dependency loop detected: flag id=%d: depends on itself", d)))
|
||||
break deploppcheck
|
||||
}
|
||||
}
|
||||
deps = append(deps, d)
|
||||
}
|
||||
}
|
||||
|
||||
// Check dependency to file
|
||||
for _, lf := range flag.FilesDeps {
|
||||
found := false
|
||||
|
Loading…
Reference in New Issue
Block a user