]> ocean-lang.org Git - ocean/blobdiff - csrc/oceani-tests.mdc
oceani: fix parsing of error in struct field.
[ocean] / csrc / oceani-tests.mdc
index 6d513487e619bc695ed3b25fd6048c789971a745..e502822eca852eab30e7c320ddc9bb079c862282 100644 (file)
@@ -904,6 +904,7 @@ various places that `type_err()` are called.
                a:number = 4
                a ::number = 5
                c:
+               d:number = 02
 
 ###### output: type_err2
        .tmp.code:4:8: error: variable 'a' redeclared
@@ -915,12 +916,13 @@ various places that `type_err()` are called.
        .tmp.code:7:8: error: variable 'a' redeclared
        .tmp.code:3:8: info: this is where 'a' was first declared
        .tmp.code:8:8: Variable declared with no type or value: c
+       .tmp.code:9:19: error: unsupported number format: 02
 
 ###### test: type_err3
 
        struct foo
                a: number
-               b:string = "hello"
+               b:string = "hello"; d:Boolean
 
        func main()
                c := "hello"
@@ -961,6 +963,12 @@ various places that `type_err()` are called.
 
                x:Boolean = $"42"
 
+               five ::= 5
+               four ::= 4
+               x1:[five]number
+               x2:[four]number
+               x1 = x2
+
 ###### output: type_err3
        .tmp.code:8:12: error: expected number but variable 'c' is string
        .tmp.code:7:8: info: this is where 'c' was set to string
@@ -999,6 +1007,10 @@ various places that `type_err()` are called.
        .tmp.code:41:29: error: string cannot provide length
        .tmp.code:43:21: error: Can only convert string to number, not Boolean
        .tmp.code:43:8: info: variable 'x' was set as Boolean here.
+       .tmp.code:49:13: error: expected [five]number but variable 'x2' is [four]number
+       .tmp.code:48:8: info: this is where 'x2' was set to [four]number
+       .tmp.code:49:8: error: cannot assign value of type [five]number
+       .tmp.code:47:8: info: variable 'x1' was set as [five]number here.
        oceani: type error in program - not running.
 
 ###### test: type_err4
@@ -1021,10 +1033,12 @@ various places that `type_err()` are called.
                b:string
        struct foo
                c:number
+               x:[5]:string
 
 ###### output: type_err5
        .tmp.code:8:7: error: type already declared: foo
        .tmp.code:2:7: info: this is location of declartion: foo
+       .tmp.code:10:13: Syntax error in struct field: :
        .tmp.code:5:7: error: type has recursive definition: baz
        .tmp.code:2:7: error: type has recursive definition: foo