This file was autogenerated from running the shaker test suite.
To update this file, either copy the output from a failing test or run
pkg/front_end/tool/fasta testing shaker -DupdateExpectations=true

library pkg/front_end/testcases/shaker/transitive_annotations_lib.dart:
  - member excludedOutline
  - member forClassField
  - member forMethod1
  - member forMethod2
  - member forSubexpression1
  - member forSubexpression2
  - member forTopLevelFunction
  - member forTypedef
  - member publicFunction1
  - typedef F1
  - class B1
    - (default constructor)
  - class B2
    - (default constructor)
  - class C1
    - publicField
    - (default constructor)
    - publicMethod1
    - publicMethod2
  - class C2
    - field
