protected ProgramState CleanStateAfterBlock(ProgramState programState, Block block) { var liveVariables = lva.GetLiveOut(block) .Union(nonInDeclarationParameters); // LVA excludes out and ref parameters return(programState.Clean(liveVariables)); }
protected ProgramState CleanStateAfterBlock(ProgramState programState, Block block) { var liveVariables = lva.GetLiveOut(block) .Union(nonInDeclarationParameters); // LVA excludes out and ref parameters // TODO: Remove the IFieldSymbol check when SLVS-1136 is fixed return(programState.RemoveSymbols( symbol => !(symbol is IFieldSymbol) && !liveVariables.Contains(symbol))); }