fix return in while/for expression
[scilab.git] / scilab / modules / ast / tests / unit_tests / return.tst
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) 2014 - Scilab Enterprises - Antoine ELIAS
3 //
4 // This file must be used under the terms of the CeCILL.
5 // This source file is licensed as described in the file COPYING, which
6 // you should have received as part of this distribution.  The terms
7 // are also available at
8 // http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9 //
10 //
11
12 // <-- JVM NOT MANDATORY -->
13
14 function v = while_return()
15     v = 0;
16     while v == 0
17         v = 1;
18         return
19         v = 2;
20     end
21 endfunction
22
23 function v = while_if_return()
24     v = 0;
25     flag = 0;
26     while v == 0
27         if v == 0 then
28             v = 1;
29             return
30             v = 2;
31         end
32     end
33     v = 3;
34 endfunction
35
36 function v = for_return()
37     v = 0;
38     for i = 1:1
39         v = 1;
40         return
41         v = 2;
42     end
43 endfunction
44
45 function v = for_if_return()
46     v = 0;
47     flag = 0;
48     for i = 1:1
49         if v == 0 then
50             v = 1;
51             return
52             v = 2;
53         end
54     end
55     v = 3;
56 endfunction
57
58 assert_checkequal(while_return(), 1);
59 assert_checkequal(while_if_return(), 1);
60 assert_checkequal(for_return(), 1);
61 assert_checkequal(for_if_return(), 1);