# File lib/rake.rb, line 354
354:   def needed?
355:     return true unless File.exist?(name)
356:     latest_prereq = @prerequisites.collect{|n| Task[n].timestamp}.max
357:     return false if latest_prereq.nil?
358:     timestamp < latest_prereq
359:   rescue Errno::ENOENT => ex # one of the prereqs does not exist
360:     raise unless $dryrun or $trace
361:     true
362:   end