static ForeachStatement MakeForeach(Expression node, IType type, RefactoringContext context)
        {
            var namingHelper = new NamingHelper(context);

            return(new ForeachStatement()
            {
                VariableType = new SimpleType("var"),
                VariableName = namingHelper.GenerateVariableName(type),
                InExpression = node.Clone(),
                EmbeddedStatement = new BlockStatement()
            });
        }
Exemplo n.º 2
0
				public void GenerateVariableNameTest()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{ $ }
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i", name);
				}
Exemplo n.º 3
0
        public void GenerateVariableNameTest()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{ $ }
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i", name);
        }
Exemplo n.º 4
0
        public void GenerateVariableNameInForInitializerList()
        {
            var context = MakeContext(@"
class A
{
	void F(int i)
	{
		for($ ; i < 0; i++);
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
        }
Exemplo n.º 5
0
        public void GenerateVariableNameInMethodIgnoresParameters()
        {
            var context = MakeContext(@"
class A
{
	void F(int i)
	{
		$
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
        }
Exemplo n.º 6
0
				public void GenerateVariableNameIgnoresNamesUsedPreviouslyInScope()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		int i;
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
				}
Exemplo n.º 7
0
        public void GenerateVariableNameIgnoresFixedVariables()
        {
            var context = MakeContext(@"
class A
{
	unsafe void F()
	{
		$
		fixed (int i = 13) {}
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("j", name);
        }
Exemplo n.º 8
0
        public void GenerateVariableNameFallsBackToNumbering()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		int i, j, k;
		$
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i2", name);
        }
Exemplo n.º 9
0
        public void GenerateVariableNameIgnoresNamesUsedInNestedScope()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
		for (int i; i < 0; i++);
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
        }
Exemplo n.º 10
0
        public void GenerateVariableNameIgnoresLinqIdentifiers()
        {
            // Snippet tests that identifiers from in, into and let clauses are found
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
		var ints = from i in new int [] {} group i by i % 2 into j let k = 2 select j.Count() + k;
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i2", name);
        }
Exemplo n.º 11
0
        public void GenerateVariableNameForCustomType()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new SimpleType()
            {
                Identifier = "VariableNameGenerationTester"
            });

            Assert.NotNull(name);
            Assert.AreEqual("variableNameGenerationTester", name);
        }
Exemplo n.º 12
0
        public void GenerateVariableNameDoesNotRepeatNames()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
                                      );
            var namingHelper = new NamingHelper(context);
            var name1        = namingHelper.GenerateVariableName(new PrimitiveType("int"));
            var name2        = namingHelper.GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name1);
            Assert.NotNull(name2);
            Assert.AreNotEqual(name1, name2, "The generated names should not repeat.");
        }
Exemplo n.º 13
0
        public void GenerateVariableNameWithNumberedVariableInParentBlock()
        {
            var context = MakeContext(@"
class A
{
	void F()
	{
		int i2;
		{
			int i, j, k;
			$
		}
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.AreEqual("i3", name);
        }
Exemplo n.º 14
0
        public IEnumerable<CodeAction> GetActions(RefactoringContext context)
        {
            var catchClause = context.GetNode<CatchClause>();
            if (catchClause == null)
                yield break;
            if (!catchClause.Type.IsNull)
                yield break;
            yield return new CodeAction(context.TranslateString("Add type specifier"), script => {
                var newType = context.CreateShortType("System", "Exception");
                var namingHelper = new NamingHelper(context);
                var newIdentifier = Identifier.Create(namingHelper.GenerateVariableName(newType, "e"));

                script.Replace(catchClause, new CatchClause {
                    Type = newType,
                    VariableNameToken = newIdentifier,
                    Body = catchClause.Body.Clone() as BlockStatement
                });
                script.Select(newType);
            }, catchClause);
        }
Exemplo n.º 15
0
        public void GenerateVariableNameShouldNotIgnoreBasedOnMethodCallIdentifiers()
        {
            var context = MakeContext(@"
class B
{
	void i()
	{
	}
}
class A
{
	void F()
	{
		
		for($ ;;)
			B.i();
	}
}"
                                      );
            var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));

            Assert.NotNull(name);
            Assert.IsTrue(name == "i");
        }
Exemplo n.º 16
0
				public void GenerateVariableNameWithNumberedVariableInParentBlock()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		int i2;
		{
			int i, j, k;
			$
		}
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i3", name);
				}
Exemplo n.º 17
0
				public void GenerateVariableNameDoesNotRepeatNames()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
						);
						var namingHelper = new NamingHelper(context);
						var name1 = namingHelper.GenerateVariableName(new PrimitiveType("int"));
						var name2 = namingHelper.GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name1);
						Assert.NotNull(name2);
						Assert.AreNotEqual(name1, name2, "The generated names should not repeat.");
				}
Exemplo n.º 18
0
				public void GenerateVariableNameForCustomType()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new SimpleType() { Identifier = "VariableNameGenerationTester" });
						Assert.NotNull(name);
						Assert.AreEqual("variableNameGenerationTester", name);
				}
Exemplo n.º 19
0
				public void GenerateVariableNameFallsBackToNumbering()
				{
						var context = MakeContext(@"
class A
{
	void F()
	{
		int i, j, k;
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i2", name);
				}
Exemplo n.º 20
0
				public void GenerateVariableNameIgnoresFixedVariables()
				{
						var context = MakeContext(@"
class A
{
	unsafe void F()
	{
		$
		fixed (int i = 13) {}
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("j", name);
				}
Exemplo n.º 21
0
				public void GenerateVariableNameIgnoresLinqIdentifiers()
				{
						// Snippet tests that identifiers from in, into and let clauses are found
						var context = MakeContext(@"
class A
{
	void F()
	{
		$
		var ints = from i in new int [] {} group i by i % 2 into j let k = 2 select j.Count() + k;
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.AreEqual("i2", name);
				}
Exemplo n.º 22
0
				public void GenerateVariableNameShouldNotIgnoreBasedOnMethodCallIdentifiers()
				{
						var context = MakeContext(@"
class B
{
	void i()
	{
	}
}
class A
{
	void F()
	{
		
		for($ ;;)
			B.i();
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsTrue(name == "i");
				}
Exemplo n.º 23
0
				public void GenerateVariableNameInForInitializerList()
				{
						var context = MakeContext(@"
class A
{
	void F(int i)
	{
		for($ ; i < 0; i++);
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
				}
Exemplo n.º 24
0
		static ForeachStatement MakeForeach(Expression node, IType type, RefactoringContext context)
		{
			var namingHelper = new NamingHelper(context);
			return new ForeachStatement() {
				VariableType = new SimpleType("var"),
				VariableName = namingHelper.GenerateVariableName(type),
				InExpression = node.Clone(),
				EmbeddedStatement = new BlockStatement()
			};
		}
Exemplo n.º 25
0
 public InitializerConversionVisitor(RefactoringContext context)
 {
     this.context = context;
     namingHelper = new NamingHelper(context);
 }
Exemplo n.º 26
0
				public void GenerateVariableNameInMethodIgnoresParameters()
				{
						var context = MakeContext(@"
class A
{
	void F(int i)
	{
		$
	}
}"
						);
						var name = new NamingHelper(context).GenerateVariableName(new PrimitiveType("int"));
						Assert.NotNull(name);
						Assert.IsFalse(name == "i", "i was already used and should not be proposed.");
				}