| Index: pkg/compiler/lib/src/resolution/members.dart
|
| diff --git a/pkg/compiler/lib/src/resolution/members.dart b/pkg/compiler/lib/src/resolution/members.dart
|
| index 390b16194bcca03073d70e3e03a0409620b0bc10..a677083acc9c39edb01c70a08aa07b2130d3097a 100644
|
| --- a/pkg/compiler/lib/src/resolution/members.dart
|
| +++ b/pkg/compiler/lib/src/resolution/members.dart
|
| @@ -3665,6 +3665,9 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| // TODO(johnniwinther): Handle this (potentially) erroneous case.
|
| isValidAsConstant = false;
|
| }
|
| + if (type.typeArguments.any((DartType type) => !type.isDynamic)) {
|
| + registry.registerFeature(Feature.TYPE_VARIABLE_BOUNDS_CHECK);
|
| + }
|
|
|
| redirectionTarget.computeType(resolution);
|
| FunctionSignature targetSignature = redirectionTarget.functionSignature;
|
| @@ -3887,6 +3890,10 @@ class ResolverVisitor extends MappingVisitor<ResolutionResult> {
|
| // TODO(johniwinther): Avoid registration of `type` in face of redirecting
|
| // factory constructors.
|
| registry.registerTypeUse(new TypeUse.instantiation(type));
|
| + InterfaceType interfaceType = type;
|
| + if (interfaceType.typeArguments.any((DartType type) => !type.isDynamic)) {
|
| + registry.registerFeature(Feature.TYPE_VARIABLE_BOUNDS_CHECK);
|
| + }
|
| }
|
|
|
| ResolutionResult resolutionResult = const NoneResult();
|
|
|