mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Merge pull request #12500 from xedin/fn-metadata-changes
[IRGen] Improvements to function type metadata
This commit is contained in:
@@ -1920,12 +1920,18 @@ static bool _dynamicCastToFunction(OpaqueValue *dest,
|
||||
// The result and argument types must match.
|
||||
if (srcFn->ResultType != targetFn->ResultType)
|
||||
return _fail(src, srcType, targetType, flags);
|
||||
if (srcFn->getNumArguments() != targetFn->getNumArguments())
|
||||
if (srcFn->getNumParameters() != targetFn->getNumParameters())
|
||||
return _fail(src, srcType, targetType, flags);
|
||||
for (unsigned i = 0, e = srcFn->getNumArguments(); i < e; ++i)
|
||||
if (srcFn->getArguments()[i] != targetFn->getArguments()[i])
|
||||
|
||||
if (srcFn->hasParameterFlags() != targetFn->hasParameterFlags())
|
||||
return _fail(src, srcType, targetType, flags);
|
||||
|
||||
for (unsigned i = 0, e = srcFn->getNumParameters(); i < e; ++i) {
|
||||
if (srcFn->getParameters()[i] != targetFn->getParameters()[i] ||
|
||||
srcFn->getParameterFlags(i) != targetFn->getParameterFlags(i))
|
||||
return _fail(src, srcType, targetType, flags);
|
||||
|
||||
}
|
||||
|
||||
return _succeed(dest, src, srcType, flags);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user