@@ -444,15 +444,12 @@ getModifiedVariables t =
444444 c@ T_SimpleCommand {} ->
445445 getModifiedVariableCommand c
446446
447- TA_Unary _ " ++|" var -> maybeToList $ do
448- name <- getLiteralString var
449- return (t, t, name, DataString $ SourceFrom [t])
450- TA_Unary _ " |++" var -> maybeToList $ do
451- name <- getLiteralString var
452- return (t, t, name, DataString $ SourceFrom [t])
453- TA_Assignment _ op lhs rhs -> maybeToList $ do
447+ TA_Unary _ " ++|" v@ (TA_Variable _ name _) ->
448+ [(t, v, name, DataString $ SourceFrom [v])]
449+ TA_Unary _ " |++" v@ (TA_Variable _ name _) ->
450+ [(t, v, name, DataString $ SourceFrom [v])]
451+ TA_Assignment _ op (TA_Variable _ name _) rhs -> maybeToList $ do
454452 guard $ op `elem` [" =" , " *=" , " /=" , " %=" , " +=" , " -=" , " <<=" , " >>=" , " &=" , " ^=" , " |=" ]
455- name <- getLiteralString lhs
456453 return (t, t, name, DataString $ SourceFrom [rhs])
457454
458455 -- Count [[ -v foo ]] as an "assignment".
@@ -634,10 +631,10 @@ getReferencedVariables parents t =
634631 map (\ x -> (l, l, x)) (
635632 getIndexReferences str
636633 ++ getOffsetReferences (getBracedModifier str))
637- TA_Expansion id _ ->
634+ TA_Variable id name _ ->
638635 if isArithmeticAssignment t
639636 then []
640- else getIfReference t t
637+ else [(t, t, name)]
641638 T_Assignment id mode str _ word ->
642639 [(t, t, str) | mode == Append ] ++ specialReferences str t word
643640
@@ -664,7 +661,6 @@ getReferencedVariables parents t =
664661 else []
665662
666663 literalizer t = case t of
667- TA_Index {} -> return " " -- x[0] becomes a reference of x
668664 T_Glob _ s -> return s -- Also when parsed as globs
669665 _ -> Nothing
670666
0 commit comments