def METHOD_NAME(self):
	if self.env.CC_NAME not in supported_compilers:
		return super(self.derived_msvcdeps, self).METHOD_NAME()
	# TODO this is unlikely to work with netcache
	if getattr(self, 'cached', None):
		return Task.Task.METHOD_NAME(self)
	bld = self.generator.bld
	unresolved_names = []
	resolved_nodes = []
	# Dynamically bind to the cache
	try:
		cached_nodes = bld.cached_nodes
	except AttributeError:
		cached_nodes = bld.cached_nodes = {}
	for path in self.msvcdeps_paths:
		node = None
		if os.path.isabs(path):
			node = path_to_node(bld.root, path, cached_nodes)
		else:
			# when calling find_resource, make sure the path does not begin with '..'
			base_node = bld.bldnode
			path = [k for k in Utils.split_path(path) if k and k != '.']
			while path[0] == '..':
				path.pop(0)
				base_node = base_node.parent
			path = os.sep.join(path)
			node = path_to_node(base_node, path, cached_nodes)
		if not node:
			raise ValueError('could not find %r for %r' % (path, self))
		else:
			if not c_preproc.go_absolute:
				if not (node.is_child_of(bld.srcnode) or node.is_child_of(bld.bldnode)):
					# System library
					Logs.debug('msvcdeps: Ignoring system include %r', node)
					continue
			if id(node) == id(self.inputs[0]):
				# Self-dependency
				continue
			resolved_nodes.append(node)
	bld.node_deps[self.uid()] = resolved_nodes
	bld.raw_deps[self.uid()] = unresolved_names
	try:
		del self.cache_sig
	except AttributeError:
		pass
	Task.Task.METHOD_NAME(self)