/// <summary> /// Process local variable declaration. /// </summary> /// <param name="localVariableDeclaration"> /// The local variable declaration. /// </param> private static void ProcessLocalVariableDeclaration(ILocalVariableDeclarationNode localVariableDeclaration) { IMultipleLocalVariableDeclarationNode multipleDeclaration = MultipleLocalVariableDeclarationNodeNavigator.GetByDeclarator(localVariableDeclaration); if (multipleDeclaration.Declarators.Count > 1) { IType newType = CSharpTypeFactory.CreateType(multipleDeclaration.TypeUsage); using (WriteLockCookie.Create(true)) { multipleDeclaration.SetTypeUsage(CSharpElementFactory.GetInstance(localVariableDeclaration.GetPsiModule()).CreateTypeUsageNode(newType)); } } else { ILocalVariable variable = (ILocalVariable)localVariableDeclaration.DeclaredElement; if (variable != null) { if (!multipleDeclaration.IsVar) { using (WriteLockCookie.Create(true)) { localVariableDeclaration.SetType(variable.Type); } } } } }
/// <summary> /// Process local variable declaration. /// </summary> /// <param name="localVariableDeclaration"> /// The local variable declaration. /// </param> private static void ProcessLocalVariableDeclaration(ILocalVariableDeclarationNode localVariableDeclaration) { IMultipleLocalVariableDeclarationNode multipleDeclaration = MultipleLocalVariableDeclarationNodeNavigator.GetByDeclarator(localVariableDeclaration); if (multipleDeclaration.Declarators.Count > 1) { IType newType = CSharpTypeFactory.CreateType(multipleDeclaration.TypeUsage); using (WriteLockCookie.Create(true)) { multipleDeclaration.SetTypeUsage(CSharpElementFactory.GetInstance(localVariableDeclaration.GetPsiModule()).CreateTypeUsageNode(newType)); } } else { ILocalVariable variable = (ILocalVariable)localVariableDeclaration.DeclaredElement; if (variable != null) { if (!multipleDeclaration.IsVar) { using (WriteLockCookie.Create(true)) { localVariableDeclaration.SetType(variable.Type); } } } } }