public IForwardDataFlowAnalysis <VariableFlags> BeginAnalysis( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { return(new DefiniteAssignmentAnalysis(declaration, symbolTree, diagnostics)); }
public VariableFlags(IExecutableDeclaration declaration, ISymbolTree symbolTree, bool defaultValue) { var invocableSymbol = declaration.Symbol; symbolMap = symbolTree.Children(invocableSymbol).Cast <BindingSymbol>().Enumerate().ToFixedDictionary(); flags = new BitArray(symbolMap.Count, defaultValue); }
public IBackwardDataFlowAnalysis <VariableFlags> BeginAnalysis( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics _) { return(new LivenessAnalysis(declaration, symbolTree)); }
public IForwardDataFlowAnalysis <VariableFlags> BeginAnalysis( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { return(new UseOfMovedValueAnalysis(declaration, symbolTree, diagnostics)); }
public BindingMutabilityAnalysis(IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { this.declaration = declaration; this.symbolTree = symbolTree; file = declaration.File; this.diagnostics = diagnostics; }
public IForwardDataFlowAnalysis <VariableFlags> BeginAnalysis( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { return(new BindingMutabilityAnalysis(declaration, symbolTree, diagnostics)); }
private ReachabilityAnalyzer( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { this.declaration = declaration; this.symbolTree = symbolTree; file = declaration.File; this.diagnostics = diagnostics; }
public UseOfMovedValueAnalysis( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { this.declaration = declaration; this.symbolTree = symbolTree; file = declaration.File; this.diagnostics = diagnostics; }
public DefiniteAssignmentAnalysis( IExecutableDeclaration declaration, ISymbolTree symbolTree, Diagnostics diagnostics) { this.declaration = declaration; this.symbolTree = symbolTree; this.file = declaration.File; this.diagnostics = diagnostics; }
public LivenessAnalysis(IExecutableDeclaration declaration, ISymbolTree symbolTree) { this.declaration = declaration; this.symbolTree = symbolTree; }
public void Check(IExecutableDeclaration syntax) { Walk(syntax, false); }