Iterator Block?

This following code is returning this error:

I have no idea what this means or how to fix it.

void Fire () {
 int f = 1;
 if (reloading || !gAct || (cAmt <= 0) || ( nFire > Time.time ) ){
  if(cAmt <=0) Reload();
  return;
 }
 if( gType != gTypes.mach){
  if(burst){
   f = bAmt;
  }
  for(var i=0; i<b; i++){
   if(cAmt > 0){
    Shoot();
    cAmt--;
    nFire = Time.time+fRate;
    if(i < (f-1)  burst){
     yield return new WaitForSeconds(bRate/bAmt);
    }
   }		
  }
 } 	
 if (cAmt <= 0){
  yield return new WaitForSeconds(fRate);
  Reload();	
 }
}

yield can only be used in functions returning IEnumerator (-> it is a coroutine) and such functions then must be used through StartCoroutine

Thank you, I’ll see what I can figure out with that information.