def method_check(compiler)
      ok_label = Mom::Label.new("method_ok_#{self.object_id}")
      compile_method = Mom::SlotDefinition.new( compiler.get_method , [])
      runtime_method = Mom::SlotDefinition.new( :message , [ :method] )
      check = Mom::NotSameCheck.new(compile_method , runtime_method, ok_label)
      # TODO? Maybe create mom instructions for this
      #builder = compiler.builder("yield")
      #Risc::Builtin::Object.exit_sequence(builder)
      #check << builder.built
      check << ok_label
    end
def method_check(compiler)
      ok_label = Mom::Label.new("method_ok_#{self.object_id}")
      compile_method = Mom::SlotDefinition.new( compiler.get_method , [])
      runtime_method = Mom::SlotDefinition.new( :message , [ :method] )
      check = Mom::NotSameCheck.new(compile_method , runtime_method, ok_label)
      # TODO? Maybe create mom instructions for this
      #builder = compiler.builder("yield")
      #Risc::Builtin::Object.exit_sequence(builder)
      #check << builder.built
      check << ok_label
    end
check that the calling method is the method that the block was created in.
 In that case variable resolution is reasy and we can prceed to yield
 Note: the else case is not implemented (ie passing lambdas around)
      this needs run-time variable resolution, which is just not done.
      we brace ourselves with the check, and exit (later raise) if . . .