@@ -65,6 +65,8 @@ object Settings {
65
65
depends : List [(Setting [_], Any )] = Nil ,
66
66
propertyClass : Option [Class [_]] = None )(private [Settings ] val idx : Int ) {
67
67
68
+ private var changed : Boolean = false
69
+
68
70
def withAbbreviation (abbrv : String ): Setting [T ] =
69
71
copy(aliases = aliases :+ abbrv)(idx)
70
72
@@ -111,8 +113,14 @@ object Settings {
111
113
112
114
def tryToSet (state : ArgsSummary ): ArgsSummary = {
113
115
val ArgsSummary (sstate, arg :: args, errors, warnings) = state
114
- def update (value : Any , args : List [String ]) =
115
- ArgsSummary (updateIn(sstate, value), args, errors, warnings)
116
+ def update (value : Any , args : List [String ]) = {
117
+ if (changed) {
118
+ ArgsSummary (updateIn(sstate, value), args, errors, warnings :+ s " Flag $name set repeatedly " )
119
+ } else {
120
+ changed = true
121
+ ArgsSummary (updateIn(sstate, value), args, errors, warnings)
122
+ }
123
+ }
116
124
def fail (msg : String , args : List [String ]) =
117
125
ArgsSummary (sstate, args, errors :+ msg, warnings)
118
126
def missingArg =
0 commit comments