Make the order of overloaded functions correct

This commit is contained in:
Dave Halter
2019-08-30 01:11:11 +02:00
parent 04bc9eb62c
commit 286d2c9b1a
5 changed files with 17 additions and 6 deletions

View File

@@ -42,7 +42,7 @@ class ExecutedParamName(ParamName):
matches = any(c1.is_sub_class_of(c2)
for c1 in argument_values
for c2 in annotations.gather_annotation_classes())
debug.dbg("signature compare %s: %s <=> %s",
debug.dbg("param compare %s: %s <=> %s",
matches, argument_values, annotations, color='BLUE')
return matches

View File

@@ -55,6 +55,8 @@ class AbstractSignature(_SignatureMixin):
raise NotImplementedError
def __repr__(self):
if self.value is self._function_value:
return '<%s: %s>' % (self.__class__.__name__, self.value)
return '<%s: %s, %s>' % (self.__class__.__name__, self.value, self._function_value)

View File

@@ -127,7 +127,8 @@ class FunctionValue(use_metaclass(CachedMetaClass, FunctionMixin, FunctionAndCla
if overloaded_funcs:
return OverloadedFunctionValue(
function,
[create(f) for f in overloaded_funcs]
# Get them into the correct order: lower line first.
list(reversed([create(f) for f in overloaded_funcs]))
)
return function