Function arguments when calling function recursively

HI,
I would like to know why no errors on below line 10 ?


class item;
  bit a;
  function bit fetch ( string str);
    //....
    a = fetch;    ---> line 10  ok 
  endfunction
endclass

module test;
 bit data;
 item it;
 initial begin 
   it = new()
   data = it.fetch("xyz");  --> here it must pass string argument. 
 end
endmodule

In reply to VE:

This is not a recursive function call. When inside a function definition, a reference to the bare function name (without the set of parenthesis appended) is a variable representing the return value of the function, not a function call.