# Copyright (c) 2018, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE.md file.

# Invalidate a part file.

type: basic
entry: a.dart
invalidate:
  - b.dart
sources:
  a.dart: |
    library a;
    import 'c.dart';
    part 'b.dart';
  b.dart: |
    part of a;
    b() { print("b"); }
  c.dart: |
    library c;
    part 'd.dart';
  d.dart: |
    part of c;
    d() { print("d"); }