// Copyright 2014 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// @dart = 2.8

import 'package:flutter_test/flutter_test.dart';

class X {}

class Y extends X {}

class A<U extends X> {
  U u;
}

void main() {
  test('Assignment through a covariant template throws exception', () {
    final A<Y> ay = A<Y>();
    final A<X> ayAsAx = ay;
    expect(() {
      ayAsAx.u = X();
    }, throwsA(isA<TypeError>()));
  });
}
