Simplify literalEquals

This commit is contained in:
Joseph C. Sible 2020-02-08 14:09:17 -05:00 committed by GitHub
parent 61b073d507
commit ef51ed3950
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 3 additions and 7 deletions

View File

@ -3052,11 +3052,9 @@ checkArrayAssignmentIndices params root =
T_NormalWord _ parts -> T_NormalWord _ parts ->
let literalEquals = do let literalEquals = do
part <- parts T_Literal id str <- parts
(id, str) <- case part of let (before, after) = break ('=' ==) str
T_Literal id str -> [(id,str)] guard $ all isDigit before && not (null after)
_ -> []
guard $ '=' `elem` str && hasNumericIndex str
return $ warnWithFix id 2191 "The = here is literal. To assign by index, use ( [index]=value ) with no spaces. To keep as literal, quote it." (surroundWidth id params "\"") return $ warnWithFix id 2191 "The = here is literal. To assign by index, use ( [index]=value ) with no spaces. To keep as literal, quote it." (surroundWidth id params "\"")
in in
if null literalEquals && isAssociative if null literalEquals && isAssociative
@ -3064,8 +3062,6 @@ checkArrayAssignmentIndices params root =
else sequence_ literalEquals else sequence_ literalEquals
_ -> return () _ -> return ()
where
hasNumericIndex str = all isDigit $ takeWhile (/= '=') str
prop_checkUnmatchableCases1 = verify checkUnmatchableCases "case foo in bar) true; esac" prop_checkUnmatchableCases1 = verify checkUnmatchableCases "case foo in bar) true; esac"