internal List <GremlinVariable> GetSideEffectVariables() { List <GremlinVariable> sideEffectVariables = ParentContext?.GetSideEffectVariables() ?? new List <GremlinVariable>(); foreach (var variable in VariableList) { var aggregate = variable as GremlinAggregateVariable; if (aggregate != null) { sideEffectVariables.Add(variable); } var store = variable as GremlinStoreVariable; if (store != null) { sideEffectVariables.Add(variable); } var treeSideEffect = variable as GremlinTreeSideEffectVariable; if (treeSideEffect != null) { sideEffectVariables.Add(variable); } var groupSideEffect = variable as GremlinGroupVariable; if (groupSideEffect != null && groupSideEffect.SideEffectKey != null) { sideEffectVariables.Add(variable); } } return(sideEffectVariables); }