Variable ResolveVariable(Variable variable) { Dom.ParseInformation info = ParserService.GetParseInformation(this.textEditor.FileName); Dom.ExpressionResult res = new Dom.ExpressionResult(variable.Name, Dom.DomRegion.FromLocation(variable.StartPos, variable.EndPos), Dom.ExpressionContext.Default, null); Dom.ResolveResult result = this.GetResolver().Resolve(res, info, this.textEditor.Document.Text); Dom.IReturnType type = currentProjectContent.SystemTypes.Object; Dom.ClassFinder finder = new Dom.ClassFinder(currentClass, textEditor.Caret.Line, textEditor.Caret.Column); if (result != null && result.ResolvedType != null) type = result.ResolvedType; if (variable.Type.Type == "var") variable.Type = Dom.Refactoring.CodeGenerator.ConvertType(type, finder); variable.IsReferenceType = type.IsReferenceType == true; return variable; }
bool HasReferencesInSelection(MethodDeclaration newMethod, Variable variable) { FindReferenceVisitor frv = new FindReferenceVisitor(CSharpNameComparer, variable.Name, newMethod.Body.StartLocation, newMethod.Body.EndLocation); newMethod.AcceptVisitor(frv, null); return frv.Identifiers.Count > 0; }
protected static bool HasAssignment(MethodDeclaration method, Variable variable) { HasAssignmentsVisitor hav = new HasAssignmentsVisitor(variable.Name, variable.Type, variable.StartPos, variable.EndPos); method.AcceptVisitor(hav, null); return hav.HasAssignment; }
Variable ResolveVariable(Variable variable) { Dom.ParseInformation info = ParserService.GetParseInformation(this.textEditor.FileName); Dom.ExpressionResult res = new Dom.ExpressionResult(variable.Name, Dom.DomRegion.FromLocation(variable.StartPos, variable.EndPos), Dom.ExpressionContext.Default, null); Dom.ResolveResult result = this.GetResolver().Resolve(res, info, this.textEditor.Document.TextContent); if (variable.Type.Type == "var") variable.Type = Dom.Refactoring.CodeGenerator.ConvertType(result.ResolvedType, new Dom.ClassFinder(result.CallingMember)); variable.IsReferenceType = result.ResolvedType.IsReferenceType == true; return variable; }
private bool HasReferencesInSelection(ISelection selection, Variable variable) { FindReferenceVisitor frv = new FindReferenceVisitor(CSharpNameComparer, variable.Name, selection.StartPosition, selection.EndPosition); var statement = new BlockStatement(); statement.Children = selection.Nodes; statement.AcceptVisitor(frv, null); return frv.Identifiers.Count > 0; }