Flutterアプリを作るためのプログラミング言語であるDartでは、同じメソッド(スコープ)内で、同じ名前の変数(インスタンス・オブジェクト)を宣言しようとすると、
The name ‘変数名’ is already defined.
というエラーを出して重複宣言チェックをしてくれます。
ところが、同じメソッド内でもif文やswitch文などの「{}」のある句で包んでしまうと、この重複チェックをしてくれなくなります。
その場合、同じメソッド内で同じ名前の変数(インスタンス・オブジェクト)であるにも関わらず、別物扱いとされてしまうので注意が必要です。
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)