public void IllegalVariableDeclarationAndAssignmentTest() { const string Code = @" Var x As Int = True; "; var e = MyAssert.Error(Code); Assert.AreEqual(ErrorCode.CantConvertType, e.ErrorCode); }
public void FrameworkIdentifierAndLocalIdentifierClashTest() { const string Code = @" Var Output = 5; Output(4); "; // this shows that shadowing worked and "Output" refers // to the variable and not the function MyAssert.Error(Code, ErrorCode.CanOnlyCallFunctions); }
public void RepeatingVarIdentifierTest() { const string Code = @" Var x = 5; Var x = ""uwu""; "; var e = MyAssert.Error(Code); Assert.AreEqual(ErrorCode.CantRedeclareVariable, e.ErrorCode); Assert.AreEqual(ErrorMessages.Messages[ErrorCode.CantRedeclareVariable], e.Message); Assert.AreEqual(Code, e.EntireCode); Assert.AreEqual(3, e.LineNumber); Assert.AreEqual(5, e.Column); }
public void BlockBindingTest() { const string Code = @" Var x = 1; Block { Var y = x; } y = x; "; var e = MyAssert.Error(Code); Assert.AreEqual(ErrorCode.CantAssignUndeclaredVariable, e.ErrorCode); Assert.AreEqual(7, e.LineNumber); Assert.AreEqual(1, e.Column); }
public void IllegalBindingTest() { const string Code = @" Var x = 1; y = 2; "; var e = MyAssert.Error(Code); Assert.AreEqual(ErrorCode.CantAssignUndeclaredVariable, e.ErrorCode); Assert.AreEqual(3, e.LineNumber); Assert.AreEqual(1, e.Column); //MyAssert.Error(Code, // e => // { // Assert.AreEqual(ErrorCode.CantAssignUndeclaredVariable, e.ErrorCode); // Assert.AreEqual(3, e.LineNumber); // Assert.AreEqual(1, e.Column); // }); }