From cc33f44e41c32f58ad170e4d054415ab7aa9edc2 Mon Sep 17 00:00:00 2001 From: Andrew Kolos Date: Wed, 6 Mar 2024 12:21:41 -0800 Subject: [PATCH] make DevFSContent descendants immutable (#144664) `DevFSBytesContent` (and it's descendant `DevFSStringContent`) have setters that change the underlying content. These are unused outside of tests, so this PR removes them. Amongst other things, this could help me refactor https://github.com/flutter/flutter/pull/144660 into something that has fewer pitfalls. This is purely a refactoring. --- packages/flutter_tools/lib/src/devfs.dart | 29 ++++--------------- .../test/general.shard/devfs_test.dart | 14 --------- 2 files changed, 6 insertions(+), 37 deletions(-) diff --git a/packages/flutter_tools/lib/src/devfs.dart b/packages/flutter_tools/lib/src/devfs.dart index 1613d9cf1ba..9db81a4df81 100644 --- a/packages/flutter_tools/lib/src/devfs.dart +++ b/packages/flutter_tools/lib/src/devfs.dart @@ -153,19 +153,12 @@ class DevFSFileContent extends DevFSContent { class DevFSByteContent extends DevFSContent { DevFSByteContent(this._bytes); - List _bytes; - + final List _bytes; + final DateTime _creationTime = DateTime.now(); bool _isModified = true; - DateTime _modificationTime = DateTime.now(); List get bytes => _bytes; - set bytes(List value) { - _bytes = value; - _isModified = true; - _modificationTime = DateTime.now(); - } - /// Return true only once so that the content is written to the device only once. @override bool get isModified { @@ -176,7 +169,7 @@ class DevFSByteContent extends DevFSContent { @override bool isModifiedAfter(DateTime time) { - return _modificationTime.isAfter(time); + return _creationTime.isAfter(time); } @override @@ -196,19 +189,9 @@ class DevFSStringContent extends DevFSByteContent { : _string = string, super(utf8.encode(string)); - String _string; + final String _string; String get string => _string; - - set string(String value) { - _string = value; - super.bytes = utf8.encode(_string); - } - - @override - set bytes(List value) { - string = utf8.decode(value); - } } /// A string compressing DevFSContent. @@ -233,7 +216,7 @@ class DevFSStringCompressingBytesContent extends DevFSContent { final String _string; final ZLibEncoder _compressor; - final DateTime _modificationTime = DateTime.now(); + final DateTime _creationTime = DateTime.now(); bool _isModified = true; @@ -249,7 +232,7 @@ class DevFSStringCompressingBytesContent extends DevFSContent { @override bool isModifiedAfter(DateTime time) { - return _modificationTime.isAfter(time); + return _creationTime.isAfter(time); } @override diff --git a/packages/flutter_tools/test/general.shard/devfs_test.dart b/packages/flutter_tools/test/general.shard/devfs_test.dart index 79f6c61c98b..2cd54da3ea7 100644 --- a/packages/flutter_tools/test/general.shard/devfs_test.dart +++ b/packages/flutter_tools/test/general.shard/devfs_test.dart @@ -67,10 +67,6 @@ void main() { expect(content.bytes, orderedEquals([4, 5, 6])); expect(content.isModified, isTrue); expect(content.isModified, isFalse); - content.bytes = [7, 8, 9, 2]; - expect(content.bytes, orderedEquals([7, 8, 9, 2])); - expect(content.isModified, isTrue); - expect(content.isModified, isFalse); }); testWithoutContext('DevFSStringContent', () { @@ -80,16 +76,6 @@ void main() { expect(content.bytes, orderedEquals(utf8.encode('some string'))); expect(content.isModified, isTrue); expect(content.isModified, isFalse); - content.string = 'another string'; - expect(content.string, 'another string'); - expect(content.bytes, orderedEquals(utf8.encode('another string'))); - expect(content.isModified, isTrue); - expect(content.isModified, isFalse); - content.bytes = utf8.encode('foo bar'); - expect(content.string, 'foo bar'); - expect(content.bytes, orderedEquals(utf8.encode('foo bar'))); - expect(content.isModified, isTrue); - expect(content.isModified, isFalse); }); testWithoutContext('DevFSFileContent', () async {