| Code-Review | +1 |
var formalParameters = _firstFragment.formalParameters;
var hasRecoveryFragments = false;
for (var i = 0; i < formalParameters.length; i++) {
if (formalParameters[i].isOriginOtherFragmentOfEnclosing) {
hasRecoveryFragments = true;
break;
}
}
// Don't expose recovery elements as the actual executable signature.
if (hasRecoveryFragments) {
var result = <FormalParameterElementImpl>[];
for (var formalParameter in formalParameters) {
if (!formalParameter.isOriginOtherFragmentOfEnclosing) {
result.add(formalParameter.asElement2);
}
}
return result.toFixedList();
}
return List.generate(formalParameters.length, (index) {
return formalParameters[index].asElement2;
}, growable: false);
}Maybe add a helper for this?
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
| Commit-Queue | +2 |
var formalParameters = _firstFragment.formalParameters;
var hasRecoveryFragments = false;
for (var i = 0; i < formalParameters.length; i++) {
if (formalParameters[i].isOriginOtherFragmentOfEnclosing) {
hasRecoveryFragments = true;
break;
}
}
// Don't expose recovery elements as the actual executable signature.
if (hasRecoveryFragments) {
var result = <FormalParameterElementImpl>[];
for (var formalParameter in formalParameters) {
if (!formalParameter.isOriginOtherFragmentOfEnclosing) {
result.add(formalParameter.asElement2);
}
}
return result.toFixedList();
}
return List.generate(formalParameters.length, (index) {
return formalParameters[index].asElement2;
}, growable: false);
}Maybe add a helper for this?
I thought about this, not here - for type parameters; but decided against it - the code is fairly easy. It does have logic, so border line. But easy, so with 2 copies is probably not worth extracting.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |
Augment. Hide augmentation recovery elements from signatures
Do not expose recovery type parameter and formal parameter elements
through the public element model. Recovery fragments are still needed
internally to link augmentation chains with mismatched shapes, but they
should not change the effective arity or callable signature of the
declaration being augmented.
Filter fragments marked as originating from another enclosing fragment
when computing executable formal parameters, executable type parameters,
and instance type parameters. This keeps function types, class arity,
and constructor or method signatures based on the real declaration
rather than on synthetic recovery elements introduced for invalid
augmentations.
| Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. |