Unverified Commit 1b406159 authored by Michael Goderbauer's avatar Michael Goderbauer Committed by GitHub

Give better error message for describeEnum (#61581)

parent 293a2bf8
...@@ -3032,7 +3032,10 @@ String describeIdentity(Object? object) => '${objectRuntimeType(object, '<optimi ...@@ -3032,7 +3032,10 @@ String describeIdentity(Object? object) => '${objectRuntimeType(object, '<optimi
String describeEnum(Object enumEntry) { String describeEnum(Object enumEntry) {
final String description = enumEntry.toString(); final String description = enumEntry.toString();
final int indexOfDot = description.indexOf('.'); final int indexOfDot = description.indexOf('.');
assert(indexOfDot != -1 && indexOfDot < description.length - 1); assert(
indexOfDot != -1 && indexOfDot < description.length - 1,
'The provided object "$enumEntry" is not an enum.',
);
return description.substring(indexOfDot + 1); return description.substring(indexOfDot + 1);
} }
......
...@@ -903,6 +903,14 @@ void main() { ...@@ -903,6 +903,14 @@ void main() {
expect(describeEnum(ExampleEnum.hello), equals('hello')); expect(describeEnum(ExampleEnum.hello), equals('hello'));
expect(describeEnum(ExampleEnum.world), equals('world')); expect(describeEnum(ExampleEnum.world), equals('world'));
expect(describeEnum(ExampleEnum.deferToChild), equals('deferToChild')); expect(describeEnum(ExampleEnum.deferToChild), equals('deferToChild'));
expect(
() => describeEnum('Hello World'),
throwsA(isAssertionError.having(
(AssertionError e) => e.message,
'message',
'The provided object "Hello World" is not an enum.'),
),
);
}); });
test('string property test', () { test('string property test', () {
......
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