Unverified Commit 9846fa51 authored by Dan Field's avatar Dan Field Committed by GitHub

Audit hashCode overrides outside of packages/flutter (#85370)

parent a85811ac
......@@ -610,7 +610,7 @@ class Hash256 {
}
@override
int get hashCode => a ^ b ^ c ^ d;
int get hashCode => Object.hash(a, b, c, d);
}
// DO NOT ADD ANY ENTRIES TO THIS LIST.
......
......@@ -28,20 +28,7 @@ class RunningProcessInfo {
}
@override
int get hashCode {
// TODO(dnfield): Replace this when Object.hashValues lands, https://github.com/dart-lang/sdk/issues/11617
int hash = 17;
if (pid != null) {
hash = hash * 23 + pid.hashCode;
}
if (commandLine != null) {
hash = hash * 23 + commandLine.hashCode;
}
if (creationDate != null) {
hash = hash * 23 + creationDate.hashCode;
}
return hash;
}
int get hashCode => Object.hash(pid, commandLine, creationDate);
@override
String toString() {
......
......@@ -166,15 +166,14 @@ class CommandArgs {
}
@override
int get hashCode => 17 * (17 * command.hashCode + _hashArguments) + _hashEnvironment;
int get _hashArguments => arguments != null
? const ListEquality<String>().hash(arguments)
: null.hashCode;
int get _hashEnvironment => environment != null
? const MapEquality<String, String>().hash(environment)
: null.hashCode;
int get hashCode {
return Object.hash(
command,
Object.hashAll(arguments ?? const <String>[]),
Object.hashAllUnordered(environment?.keys ?? const <String>[]),
Object.hashAllUnordered(environment?.values ?? const <String>[]),
);
}
}
class FakeDevice extends AndroidDevice {
......
......@@ -183,8 +183,7 @@ class Rect {
final double bottom;
@override
int get hashCode =>
top.hashCode ^ left.hashCode ^ right.hashCode ^ bottom.hashCode;
int get hashCode => Object.hash(top, left, right, bottom);
@override
bool operator ==(Object other) {
......@@ -216,7 +215,7 @@ class Size {
final double height;
@override
int get hashCode => width.hashCode ^ height.hashCode;
int get hashCode => Object.hash(width, height);
@override
bool operator ==(Object other) {
......
......@@ -128,9 +128,7 @@ class LocaleInfo implements Comparable<LocaleInfo> {
}
@override
int get hashCode {
return originalString.hashCode;
}
int get hashCode => originalString.hashCode;
@override
String toString() {
......
......@@ -274,7 +274,7 @@ class FrameData {
}
@override
int get hashCode => size.hashCode ^ paths.hashCode;
int get hashCode => Object.hash(size, Object.hashAll(paths));
@override
String toString() {
......@@ -328,7 +328,7 @@ class SvgPath {
}
@override
int get hashCode => id.hashCode ^ commands.hashCode ^ opacity.hashCode;
int get hashCode => Object.hash(id, Object.hashAll(commands), opacity);
@override
String toString() {
......@@ -377,7 +377,7 @@ class SvgPathCommand {
}
@override
int get hashCode => type.hashCode ^ points.hashCode;
int get hashCode => Object.hash(type, Object.hashAll(points));
@override
String toString() {
......
......@@ -798,7 +798,7 @@ class _DetailArguments {
}
@override
int get hashCode => packageName.hashCode; // Good enough.
int get hashCode => hashValues(packageName, hashList(licenseEntries));
}
class _PackageLicensePage extends StatefulWidget {
......
......@@ -814,5 +814,5 @@ class DriverOffset {
}
@override
int get hashCode => dx.hashCode ^ dy.hashCode;
int get hashCode => Object.hash(dx, dy);
}
......@@ -911,11 +911,7 @@ class _Asset {
}
@override
int get hashCode {
return baseDir.hashCode
^ relativeUri.hashCode
^ entryUri.hashCode;
}
int get hashCode => Object.hash(baseDir, relativeUri, entryUri.hashCode);
}
// Given an assets directory like this:
......
......@@ -128,10 +128,7 @@ class Fingerprint {
}
@override
// Ignore map entries here to avoid becoming inconsistent with equals
// due to differences in map entry order. This is a really bad hash
// function and should eventually be deprecated and removed.
int get hashCode => _checksums.length.hashCode;
int get hashCode => Object.hash(Object.hashAllUnordered(_checksums.keys), Object.hashAllUnordered(_checksums.values));
@override
String toString() => '{checksums: $_checksums}';
......
......@@ -98,7 +98,7 @@ class Version implements Comparable<Version> {
}
@override
int get hashCode => major ^ minor ^ patch;
int get hashCode => Object.hash(major, minor, patch);
bool operator <(Version other) => compareTo(other) < 0;
bool operator >(Version other) => compareTo(other) > 0;
......
......@@ -278,7 +278,7 @@ class ValidationMessage {
}
@override
int get hashCode => type.hashCode ^ message.hashCode ^ contextUrl.hashCode;
int get hashCode => Object.hash(type, message, contextUrl);
}
class NoIdeValidator extends DoctorValidator {
......
......@@ -302,7 +302,7 @@ class XcodeProjectBuildContext {
final EnvironmentType environmentType;
@override
int get hashCode => scheme.hashCode ^ configuration.hashCode ^ environmentType.hashCode;
int get hashCode => Object.hash(scheme, configuration, environmentType);
@override
bool operator ==(Object other) {
......
......@@ -129,9 +129,7 @@ class LocaleInfo implements Comparable<LocaleInfo> {
}
@override
int get hashCode {
return originalString.hashCode;
}
int get hashCode => originalString.hashCode;
@override
String toString() {
......
......@@ -326,12 +326,7 @@ class CustomDimensions {
}
@override
int get hashCode =>
toMap()
.values
.where((String element) => element != null)
.fold(Object().hashCode,
(int value, String element) => value ^ element.hashCode);
int get hashCode => Object.hashAll(toMap().values);
}
/// List of all fields used in CustomDimensions.
......
......@@ -486,7 +486,7 @@ class TestUsageCommand {
}
@override
int get hashCode => command.hashCode ^ parameters.hashCode;
int get hashCode => Object.hash(command, parameters);
@override
String toString() => 'TestUsageCommand($command, parameters:$parameters)';
......@@ -514,11 +514,7 @@ class TestUsageEvent {
}
@override
int get hashCode => category.hashCode ^
parameter.hashCode ^
label.hashCode ^
value.hashCode ^
parameters.hashCode;
int get hashCode => Object.hash(category, parameter, label, value, parameters);
@override
String toString() => 'TestUsageEvent($category, $parameter, label:$label, value:$value, parameters:$parameters)';
......@@ -544,10 +540,7 @@ class TestTimingEvent {
}
@override
int get hashCode => category.hashCode ^
variableName.hashCode ^
duration.hashCode ^
label.hashCode;
int get hashCode => Object.hash(category, variableName, duration, label);
@override
String toString() => 'TestTimingEvent($category, $variableName, $duration, label:$label)';
......
......@@ -326,5 +326,5 @@ class VsCodeInstallLocation {
@override
// Lowest bit is for isInsiders boolean.
int get hashCode => installPath.hashCode ^ extensionsFolder.hashCode ^ edition.hashCode;
int get hashCode => Object.hash(installPath, extensionsFolder, edition);
}
......@@ -219,7 +219,7 @@ class CleanWorkspaceCall {
verbose == other.verbose;
@override
int get hashCode => workspacePath.hashCode;
int get hashCode => Object.hash(workspacePath, scheme, verbose);
@override
String toString() => '{$workspacePath, $scheme, $verbose}';
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment