 #   my_mock.args(4,5,6)     # [ { "m2", [4,5,6] }, { "m1", [1,2,3], 42 } ]
 #   my_mock.returns(43)     # [ { "m2", [4,5,6], 43 }, { "m1", [1,2,3], 42 } ]
 #
-# @signatures is just an array, not a hash.  It will not grow very large
-# so a linear search for a particular signature is fine.
-#
-# @signatures and @state are added to the mock object by the various mock 
+# @expectations is just an array, not a hash.  It will not grow very large
+# so a linear search for a particular expectation is fine.
+#
+# @expectations and @state are added to the mock object by the various mock 
 # methods when needed (i.e. lazily); if we mock an existing class then we
 # only need to worry about adding the mock methods to that class, not 
-# monkeying with its contructor to also add @signatures and @state.
+# monkeying with its contructor to also add @expectations and @state.
 #
 class Mock
 

  #
  args: (args...) ->
    _check_args_usage(@, args...)
    _set_args_for_current_signature(@, args)
    _set_state(@, "args")
    @


_throw_args_must_be_after_expects = ->
  throw ".args() must be called immediately after .expects(), e.g. my_mock.expects('my_method').args(42)"

_throw_duplicate_expectation = (expectation) ->
  throw "#{expectation} is a duplicate expectation"

_throw_returns_usage = ->
  throw "you need to supply an argument to .returns(), e.g. my_mock.expects('my_method').returns(123)"
