How to return a value from a function

ok it says that Test2 “method could return default value implicitly” WTH and WHY???

 function Test1() {
    	var Stop : boolean;
    	Test2(Stop);
    	
    	if( !Stop ){
    		Debug.Log("Stop = " + Stop); //its always false???? even when raycast = true
    	}
    }
    
    function Test2(STOP:boolean) {
    	STOP = false;
    	
    	var down = (transform.TransformDirection (Vector3.down));
    	var hit : RaycastHit;
    	
    	if (Physics.Raycast (transform.position, down, hit, 1)) {
    		STOP = true;
    		return STOP;
    	}		
    }

You must define the return type like this:

    function Test2(): boolean {
        var STOP = false;
        ...
        if (Physics.Raycast (transform.position, down, hit, 1)) {
           STOP = true;
        }
        return STOP;
    }