private MethodDeclarationSyntax ReplaceParameterUsages(MethodDeclarationSyntax methodDeclaration, IParameterSymbol parameterSymbol, SyntaxNode replaceWith, SemanticModel semanticModel) { var rewriter = new ParameterUsagesRewriter(parameterSymbol, replaceWith, semanticModel); return((MethodDeclarationSyntax)methodDeclaration.Accept(rewriter)); }
public static bool HasYield(MethodDeclarationSyntax method) { var yieldChecker = new YieldChecker(true); method.Accept(yieldChecker); return(yieldChecker.isSpecial); }
public void GenerateStates() { var lastState = new State(this); lastState.Statements.Add(Cs.Return(Cs.False())); currentState = new State(this) { NextState = lastState }; node.Accept(this); // Post-process goto statements if (labelStates.Any()) { var gotoSubstituter = new GotoSubstituter(compilation, labelStates); foreach (var state in states) { state.Statements = state.Statements.Select(x => (StatementSyntax)x.Accept(gotoSubstituter)).ToList(); } } if (!states.Last().Statements.Any()) { states.Last().Statements.Add(Cs.Break()); } }
public static bool HasYield(MethodDeclarationSyntax method) { if (method.IsAsync()) { return(false); } var yieldChecker = new YieldChecker(true); method.Accept(yieldChecker); return(yieldChecker.isSpecial); }