tree 73f2e93ff95ca7227e59e5e2028312febfc31135
parent 836c295085f1250e7f1127ac65dc69d03a2b7db4
author Navaron Bracke <brackenavaron@gmail.com> 1770795207 +0100
committer GitHub <noreply@github.com> 1770795207 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpjDDXCRC1aQ7uu5UhlAAA1XUQAFG95yuDIu076HHV36NPi/7H
 uDOvulO3Ze6ZghXlkYhEBazOgLZqP32iUnq33NiWqdA8E8SuwSSCZWDjCJXD13wE
 psCEFUJxGYqGiSpSUKCKSSuyL3tQ689AoZl9DgD0gmpufS1cd/67GC9yTPteDetC
 Ld3ohko2xzJdInXTROOYokPVxWj+kKpiO8UBiIvL0qEtdBH9fCZSjU4bFpnA4Mzw
 NfFrfhxc9zKD3AK9ltCBtO/QRQ/JEZ+wrjW5gH0pckfEm+a8fXjuo0CHu+cScsdf
 kJOGpmQevA6K8IYdoqKtj6aKmYpFOMOpEYbtGrbWw3ntpaiGB+QXDVx6HLkq/Bwk
 S27rcjnpJka/tJfzYkcnaCvc2WSstntO0IHXFO1U2PZEHIG561un8SLvFgJ7QKXy
 OZnvRnYv9m3K738Yi85uC9b+gp3CiENu/HWSgIPQATvvzd874cT1ggPunJT7OvxL
 uxpHZ1MGj6Kvx8Z4Ukpzw5OM2y/d2mPjhf4BlO8OvBYJxK9yl0PcvjgHa2rTlQ5O
 6J2CSfE7cXLri31i+1GGCUdKbkAS0w76UEz/AjXPpMi8zYT7i31Xi/pN/9NSXb3J
 GlfQQk8+MqPtJkem1H9a6ga3cZK7eFtJ/tpyO+BUXrtDbJ8zmgkzylBTR/KysCHJ
 G/pj1iPR5tAzfBRyaI5S
 =fr3g
 -----END PGP SIGNATURE-----
 

Cross imports cleanups (#181611)

This PR cleans up a bunch of files for the cross imports, in one big
change, per offline discussion.

The following files have been fixed:

- debug_test.dart
- dual_transition_builder_test.dart
- listener_test.dart
- placeholder_test.dart
- rotated_box_test.dart
- run_app_async_test.dart
- run_app_test.dart
- scroll_activity_test.dart
- scroll_position_test.dart
- scrollable_dispose_test.dart
- semantics_test.dart
- shape_decoration_test.dart
- simple_semantics_test.dart
- sliver_list_test.dart
- slivers_padding_test.dart
- syncing_test.dart
- text_semantics_test.dart

Part of https://github.com/flutter/flutter/issues/177415

*If you had to change anything in the [flutter/tests] repo, include a
link to the migration guide as per the [breaking change policy].*

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.

If you need help, consider asking for advice on the #hackers-new channel
on [Discord].

**Note**: The Flutter team is currently trialing the use of [Gemini Code
Assist for
GitHub](https://developers.google.com/gemini-code-assist/docs/review-github-code).
Comments from the `gemini-code-assist` bot should not be taken as
authoritative feedback from the Flutter team. If you find its comments
useful you can update your code accordingly, but if you are unsure or
disagree with the feedback, please feel free to wait for a Flutter team
member's review for guidance on which automated comments should be
addressed.

<!-- Links -->
[Contributor Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#overview
[Tree Hygiene]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
[test-exempt]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#tests
[Flutter Style Guide]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md
[Features we expect every widget to implement]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Style-guide-for-Flutter-repo.md#features-we-expect-every-widget-to-implement
[CLA]: https://cla.developers.google.com/
[flutter/tests]: https://github.com/flutter/tests
[breaking change policy]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md#handling-breaking-changes
[Discord]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Chat.md
[Data Driven Fixes]:
https://github.com/flutter/flutter/blob/main/docs/contributing/Data-driven-Fixes.md