diff --git a/mypy/messages.py b/mypy/messages.py index c6378c264757..4c79f94ad5b8 100644 --- a/mypy/messages.py +++ b/mypy/messages.py @@ -21,6 +21,7 @@ import mypy.typeops from mypy import errorcodes as codes, message_registry +from mypy.constant_fold import constant_fold_expr from mypy.erasetype import erase_type from mypy.errorcodes import ErrorCode from mypy.errors import ( @@ -50,7 +51,6 @@ MypyFile, NameExpr, ReturnStmt, - StrExpr, SymbolNode, SymbolTable, TypeInfo, @@ -808,10 +808,10 @@ def incompatible_argument( ) arg_label = f'"{arg_name}"' if isinstance(outer_context, IndexExpr) and isinstance( - outer_context.index, StrExpr + index := constant_fold_expr(outer_context.index, ""), str ): msg = 'Value of "{}" has incompatible type {}; expected {}'.format( - outer_context.index.value, + index, quote_type_string(arg_type_str), quote_type_string(expected_type_str), )