コード例 #1
0
ファイル: TypeTests.cs プロジェクト: Phantonia/Krypton
        public void IllegalVariableDeclarationAndAssignmentTest()
        {
            const string Code = @"
            Var x As Int = True;
            ";

            var e = MyAssert.Error(Code);

            Assert.AreEqual(ErrorCode.CantConvertType, e.ErrorCode);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
            //               });
        }