class RSpec::Matchers::BuiltIn::Change

def does_not_match?(event_proc, &block)

def does_not_match?(event_proc, &block)
  expression = if @expected_delta
    "by()"
  elsif @minimum
    "by_at_least()"
  elsif @maximum
    "by_at_most()"
  elsif @eval_after
    "to()"
  end
  if expression
    RSpec.deprecate("`expect { }.not_to change { }.#{expression}`")
  end
  matched_positively = matches?(event_proc, &block)
  unless matches_before?
    RSpec.warn_deprecation(<<-EOS.gsub(/^\s+\|/, ''))
      |The semantics of `expect { }.not_to change { }.from()` are changing
      |in RSpec 3. In RSpec 2.x, this would pass if the value changed but
      |the starting value was not what you specified with `from()`. In
      |RSpec 3, this will only pass if the starting value matches your
      |`from()` value _and_ it has not changed.
      |
      |You have an expectation that relies upon the old RSpec 2.x semantics
      |at: #{CallerFilter.first_non_rspec_line}"
    EOS
  end
  !matched_positively
end