diff --git a/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs b/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs
index bd3a2d8e581c4cbab1e6e07ca38169296012d2b5..06500beddf48085adbde892fd19b087432348815 100644
--- a/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs
+++ b/Module8/Visitors/GenCodeVisitors/GenCodeVisitor.cs
@@ -63,6 +63,13 @@ namespace SimpleLang.Visitors
 
             binop.Left.Visit(this);
             binop.Right.Visit(this);
+
+
+            if (binOperationsTypes.Count != 0 && !binOperationsTypes.All((t)=>t== binOperationsTypes[0]))
+            {
+
+                throw new Exception("Переменные должны быть одного типа!");
+            }
             switch (binop.Op)
             {
                 case '+':
diff --git a/TestCodeGenerator/Tests.cs b/TestCodeGenerator/Tests.cs
index e7994e2eeef34d4158a205dceba3250da1de6638..5df6e77a5dd1a510b228ae852301d304afef1ce7 100644
--- a/TestCodeGenerator/Tests.cs
+++ b/TestCodeGenerator/Tests.cs
@@ -68,7 +68,8 @@ namespace TestCodeGenerator
         [Test]
         public void SmokeTest2()
         {
-            Assert.AreEqual("2.2", TestHelper.GenerateNRun(@"begin float a; a := 1.2; if a then a:=a+1 else a:=a+2; write(a) end"));  
+            Assert.AreEqual("2.2", TestHelper.GenerateNRun(@"begin float a; a := 1.2; if a then a:=a+1.0 else a:=a+2.0; write(a) end"));
+            //Assert.AreEqual("2", TestHelper.GenerateNRun(@"begin int a; a := 1; if a then a:=a+1 else a:=a+2; write(a) end"));
         }
 
         [Test]
@@ -134,7 +135,7 @@ namespace TestCodeGenerator
         [Test]
         public void TestTypes()
         {
-            Assert.AreEqual("2.4", TestHelper.GenerateNRun(@"begin var b; b := (232 / 5) + (232 % 5); write(b) end"));
+            Assert.AreEqual("48", TestHelper.GenerateNRun(@"begin int b1; b1 := (232 / 5) + (232 % 5); write(b1) end"));
 
             //Assert.AreEqual("2.4", TestHelper.GenerateNRun(@"begin int b; b := 1.2; write(b) end"));
         }