@@ -24,17 +24,44 @@ class ReturnCheckTest extends CheckTestCase {
2424 check .enforceReturnType = true ;
2525 var msg = checkMessage (ReturnTests .TEST1 , check );
2626 assertEquals (msg , ' ' );
27+ msg = checkMessage (ReturnTests .TEST4 , check );
28+ assertEquals (msg , ' ' );
29+ }
30+
31+ public function testEnforceReturnTypeMissing () {
32+ var check = new ReturnCheck ();
33+ check .enforceReturnType = true ;
34+ var msg = checkMessage (ReturnTests .TEST1 , check );
35+ assertEquals (msg , ' ' );
36+
37+ msg = checkMessage (ReturnTests .TEST2 , check );
38+ assertEquals (msg , ' Return type not specified when returning a value for function: test1' );
39+
40+ msg = checkMessage (ReturnTests .TEST3 , check );
41+ assertEquals (msg , ' Return type not specified for function: test2' );
2742 }
2843
29- public function testReturnTypeAllowEmptyReturn () {
44+ public function testReturnTypeAllowEmptyReturnFalse () {
3045 var check = new ReturnCheck ();
3146 check .allowEmptyReturn = false ;
47+
3248 var msg = checkMessage (ReturnTests .TEST2 , check );
3349 assertEquals (msg , ' Return type not specified when returning a value for function: test1' );
3450
3551 msg = checkMessage (ReturnTests .TEST3 , check );
3652 assertEquals (msg , ' Return type not specified when returning a value for function: test2' );
3753 }
54+
55+ public function testReturnTypeAllowEmptyReturnTrue () {
56+ var check = new ReturnCheck ();
57+ check .allowEmptyReturn = true ;
58+
59+ var msg = checkMessage (ReturnTests .TEST3 , check );
60+ assertEquals (msg , ' ' );
61+
62+ msg = checkMessage (ReturnTests .TEST2 , check );
63+ assertEquals (msg , ' Return type not specified when returning a value for function: test1' );
64+ }
3865}
3966
4067class ReturnTests {
@@ -56,4 +83,11 @@ class ReturnTests {
5683 return;
5784 }
5885 }" ;
86+
87+ public static inline var TEST4 : String =
88+ " class Test {
89+ public function test3():Void {
90+ return;
91+ }
92+ }" ;
5993}
0 commit comments