| Index: pkg/analyzer/lib/src/summary/link.dart
|
| diff --git a/pkg/analyzer/lib/src/summary/link.dart b/pkg/analyzer/lib/src/summary/link.dart
|
| index a685504be5cbc9ab8b18aacfae880c24708a91de..7dde331c6ce5729b31bdf3d20a11502576b46e1e 100644
|
| --- a/pkg/analyzer/lib/src/summary/link.dart
|
| +++ b/pkg/analyzer/lib/src/summary/link.dart
|
| @@ -3859,7 +3859,7 @@ class ParameterElementForLink implements ParameterElementImpl {
|
|
|
| @override
|
| bool get isCovariant {
|
| - if (inheritsCovariant) {
|
| + if (isExplicitlyCovariant || inheritsCovariant) {
|
| return true;
|
| }
|
| for (UnlinkedExpr annotation in _unlinkedParam.annotations) {
|
| @@ -3878,6 +3878,9 @@ class ParameterElementForLink implements ParameterElementImpl {
|
| }
|
|
|
| @override
|
| + bool get isExplicitlyCovariant => _unlinkedParam.isExplicitlyCovariant;
|
| +
|
| + @override
|
| String get name => _unlinkedParam.name;
|
|
|
| @override
|
| @@ -3955,7 +3958,10 @@ class ParameterElementForLink_VariableSetter implements ParameterElementImpl {
|
| ParameterElementForLink_VariableSetter(this.enclosingElement);
|
|
|
| @override
|
| - bool get isCovariant => false;
|
| + bool get isCovariant => isExplicitlyCovariant || inheritsCovariant;
|
| +
|
| + @override
|
| + bool get isExplicitlyCovariant => enclosingElement.variable.isCovariant;
|
|
|
| @override
|
| bool get isSynthetic => true;
|
| @@ -4909,6 +4915,12 @@ abstract class VariableElementForLink
|
| @override
|
| bool get isConst => unlinkedVariable.isConst;
|
|
|
| + /**
|
| + * Return `true` if this variable is a field that was explicitly marked as
|
| + * being covariant (in the setter's parameter).
|
| + */
|
| + bool get isCovariant => unlinkedVariable.isCovariant;
|
| +
|
| @override
|
| bool get isFinal => unlinkedVariable.isFinal;
|
|
|
|
|