tree 2f2603b9ec8e0d9bea6e6fb0b7e07c6e3f428e87
parent 0bdd3135c8bcb4633e63b14be54206cd2687167c
author Kazbek Sultanov <kazbek.sultanov.doc@gmail.com> 1769151555 +0400
committer GitHub <noreply@github.com> 1769151555 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJpcxxRCRC1aQ7uu5UhlAAAWx8QAB/arqvQEx9ARE7JTXVpXfK+
 WBtPBIR2gkeBDVFJp+8hg5nuU6OLro/Fx8QVmngbtvysr0QWtj7HFzgdJMdsLIaO
 sAIg/K4Dg8tHu0/gb24Zxyd+T/K1dkwZaDTuVa40BhNYQjoqVwgeglegu0PH1OAg
 KESde49sVZ2DUGpk6HlX6xosPfCVWfPhnXwPYweAUcRdUuQGivD+EzbCFyDk25sJ
 Bek3C97QSeB60Uz7D4cMVLeUAixBf1IecvKGncqKv3yxYIX7boCTSyW+ve/jAcQT
 spjYkLk1dgKJbQsQEox2zQ5+SEiu96DVNifzojmM9kOOCpqu/580I+Vsz3UDiS73
 d+0tdK5LNPBs+f15p6yTGD7AmtML1aQgRUpGNJPneWDbfWnRK/BSr86Aw7sTU8/s
 Yl/WnFs0e2qxq16/pZV8rUB2gWGLwOs3eDF2m8nu5C/tryktsEb+pD94XfyQAjPE
 tbdc14q7FFK1mduyhCR+oBxI3TWkXEpI/DtxvQhUIOmsWXZpDvTQOeVWl5URje2J
 GHSRUutfHmBkikjYQ2qUROtHtIA0HYjWt2JDOChH9EfN2g7YTu4KFIz6BE9toslT
 jl6JVFHHceg7gNgjx5IxX8T3akMYVoHB+y3eQtExVHjaHFCB+t8VQDfTXqSIotUe
 t9ZwVBVCnc4FOHi+jZi1
 =9o4q
 -----END PGP SIGNATURE-----
 

Remove unnecessary Material import from sliver_visibility_test (#181248)

<!--
Thanks for filing a pull request!
Reviewers are typically assigned within a week of filing a request.
To learn more about code review, see our documentation on Tree Hygiene:
https://github.com/flutter/flutter/blob/main/docs/contributing/Tree-hygiene.md
-->

Remove the Material import from sliver_visibility_test.dart since it's
only testing SliverVisibility, a widgets-level component. The test
doesn't need Material-specific functionality - it only uses
DefaultWidgetsLocalizations.delegate which provides sufficient
localization support.

Changes:
- Replaced `import 'package:flutter/material.dart'` with `import
'package:flutter/widgets.dart'`
- Removed `DefaultMaterialLocalizations.delegate` from the localizations
delegates list

This helps with the decoupling of Material and Cupertino from the core
framework.

Part of #177412

## 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