diff --git a/csharp/ql/src/Useless code/DefaultToStringQuery.qll b/csharp/ql/src/Useless code/DefaultToStringQuery.qll index f11b5a9cd324..411ca47b5e67 100644 --- a/csharp/ql/src/Useless code/DefaultToStringQuery.qll +++ b/csharp/ql/src/Useless code/DefaultToStringQuery.qll @@ -47,6 +47,7 @@ private predicate alwaysInvokesToString(ParameterRead pr) { */ predicate alwaysDefaultToString(ValueOrRefType t) { not t instanceof TupleType and + not t instanceof Enum and exists(ToStringMethod m | t.hasMethod(m) | m.getDeclaringType() instanceof SystemObjectClass or m.getDeclaringType() instanceof SystemValueTypeClass diff --git a/csharp/ql/src/change-notes/2025-09-16-default-tostring-enum.md b/csharp/ql/src/change-notes/2025-09-16-default-tostring-enum.md new file mode 100644 index 000000000000..30ba96e0b01f --- /dev/null +++ b/csharp/ql/src/change-notes/2025-09-16-default-tostring-enum.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* The query `cs/call-to-object-tostring` has been improved to remove false positives for enum types.