protected ErrorKind CheckForJumpInstructions(MethodDeclaration method) { FindJumpInstructionsVisitor fjiv = new FindJumpInstructionsVisitor(method); method.AcceptVisitor(fjiv, null); return(fjiv.DoCheck()); }
// public void InsertCall() // { // string call = GenerateCode(CreateCaller(this.parentMethod, this.extractedMethod, this.returnedVariable), false); // StringBuilder builder = new StringBuilder(); // // foreach (LocalVariableDeclaration v in this.beforeCallDeclarations) { // builder.AppendLine(GenerateCode(v, false)); // } // // this.currentDocument.Replace(this.currentSelection.Offset, this.currentSelection.Length, builder.ToString() + "\r\n" + call); // } // // public void InsertAfterCurrentMethod() // { // IOutputAstVisitor outputVisitor = this.GetOutputVisitor(); // // using (SpecialNodesInserter.Install(this.specialsList, outputVisitor)) { // string code = "\r\n\r\n" + GenerateCode(this.extractedMethod, true); // // code = code.TrimEnd('\r', '\n', ' ', '\t'); // // Dom.IMember p = GetParentMember(this.textEditor, this.currentSelection.StartPosition.Line, this.currentSelection.StartPosition.Column); // // TextLocation loc = new ICSharpCode.TextEditor.TextLocation( // p.BodyRegion.EndColumn - 1, p.BodyRegion.EndLine - 1); // // int offset = textEditor.Document.PositionToOffset(loc); // // textEditor.Document.Insert(offset, code); // } // } protected static bool CheckForJumpInstructions(MethodDeclaration method, ISelection selection) { FindJumpInstructionsVisitor fjiv = new FindJumpInstructionsVisitor(method, selection); method.AcceptVisitor(fjiv, null); return(fjiv.IsOk); }
public void GotoTargetOccursBefore() { const string codeText = @"public void Switch() { fred: return; goto fred; }"; var md = AstMatchHelper.ParseToMethodDeclaration(codeText); FindJumpInstructionsVisitor v = new FindJumpInstructionsVisitor(md, new MySelection(md.Body.Children)); md.AcceptVisitor(v, null); Assert.IsTrue(v.IsOk); }
public void GotoDefaultCase() { const string codeText = @"public void Switch() { switch (0) { case 0: goto default; default: break; } }"; var md = AstMatchHelper.ParseToMethodDeclaration(codeText); FindJumpInstructionsVisitor v = new FindJumpInstructionsVisitor(md, new MySelection(md.Body.Children)); md.AcceptVisitor(v, null); Assert.IsTrue(v.IsOk); }