]> ocean-lang.org Git - ocean/commitdiff
oceani: more test coverage
authorNeilBrown <neil@brown.name>
Sat, 18 Dec 2021 09:26:13 +0000 (20:26 +1100)
committerNeilBrown <neil@brown.name>
Sat, 18 Dec 2021 09:26:13 +0000 (20:26 +1100)
Signed-off-by: NeilBrown <neil@brown.name>
csrc/oceani-tests.mdc
csrc/oceani.mdc

index 3e2f411dc2ad36f6203ffe12e9f82d063290827e..b613ffe484133dd040753b3fa27c129635c37839 100644 (file)
@@ -963,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
@@ -1001,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
index 3dbe0b19340f4a73fab60591bedc42768385e2cd..0778da21115f81acb7018fdd3bae8655e0af7428 100644 (file)
@@ -2470,13 +2470,13 @@ with a const size by whether they are prepared at parse time or not.
                        return 0;
                if (have->array.unspec && require->array.unspec &&
                    have->array.size != require->array.size)
-                       return 0;       // UNTESTED
+                       return 0;       // NOTEST
                if (have->array.unspec || require->array.unspec)
                        return 1;
                if (require->array.vsize == NULL && have->array.vsize == NULL)
                        return require->array.size == have->array.size;
 
-               return require->array.vsize == have->array.vsize;       // UNTESTED
+               return require->array.vsize == have->array.vsize;
        }
 
        static void array_print_type(struct type *type, FILE *f)