Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions conformance/results/mypy/literals_literalstring.toml
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ output = """
literals_literalstring.py:36: error: Parameter 2 of Literal[...] is invalid [valid-type]
literals_literalstring.py:37: error: Parameter 1 of Literal[...] is invalid [valid-type]
literals_literalstring.py:43: error: Incompatible types in assignment (expression has type "Literal['two']", variable has type "Literal['']") [assignment]
literals_literalstring.py:74: error: Incompatible types in assignment (expression has type "int", variable has type "str") [assignment]
literals_literalstring.py:75: error: Incompatible types in assignment (expression has type "bytes", variable has type "str") [assignment]
literals_literalstring.py:157: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
literals_literalstring.py:167: error: Expression is of type "B", not "A" [assert-type]
literals_literalstring.py:73: error: Incompatible types in assignment (expression has type "int", variable has type "str") [assignment]
literals_literalstring.py:74: error: Incompatible types in assignment (expression has type "bytes", variable has type "str") [assignment]
literals_literalstring.py:156: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]
literals_literalstring.py:166: error: Expression is of type "B", not "A" [assert-type]
"""
conformance_automated = "Fail"
errors_diff = """
Line 66: Expected 1 errors
Line 120: Expected 1 errors
Line 134: Expected 1 errors
Line 171: Expected 1 errors
Line 157: Unexpected errors ["literals_literalstring.py:157: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]"]
Line 167: Unexpected errors ['literals_literalstring.py:167: error: Expression is of type "B", not "A" [assert-type]']
Line 65: Expected 1 errors
Line 119: Expected 1 errors
Line 133: Expected 1 errors
Line 170: Expected 1 errors
Line 156: Unexpected errors ["literals_literalstring.py:156: error: Overloaded function signature 3 will never be matched: signature 2's parameter type(s) are the same or broader [overload-cannot-match]"]
Line 166: Unexpected errors ['literals_literalstring.py:166: error: Expression is of type "B", not "A" [assert-type]']
"""
12 changes: 6 additions & 6 deletions conformance/results/pyrefly/literals_literalstring.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ output = """
ERROR literals_literalstring.py:36:29-42: Invalid type inside literal, `LiteralString` [invalid-literal]
ERROR literals_literalstring.py:37:22-35: Invalid type inside literal, `LiteralString` [invalid-literal]
ERROR literals_literalstring.py:43:23-24: `Literal['two']` is not assignable to `Literal['']` [bad-assignment]
ERROR literals_literalstring.py:66:25-47: `str` is not assignable to `LiteralString` [bad-assignment]
ERROR literals_literalstring.py:74:25-26: `Literal[3]` is not assignable to `LiteralString` [bad-assignment]
ERROR literals_literalstring.py:75:25-32: `Literal[b'test']` is not assignable to `LiteralString` [bad-assignment]
ERROR literals_literalstring.py:120:21-24: `str` is not assignable to upper bound `LiteralString` of type variable `TLiteral` [bad-specialization]
ERROR literals_literalstring.py:134:51-52: Argument `str` is not assignable to parameter `value` with type `LiteralString` in function `Container.__init__` [bad-argument-type]
ERROR literals_literalstring.py:171:21-24: `list[LiteralString]` is not assignable to `list[str]` [bad-assignment]
ERROR literals_literalstring.py:65:25-45: `str` is not assignable to `LiteralString` [bad-assignment]
ERROR literals_literalstring.py:73:25-26: `Literal[3]` is not assignable to `LiteralString` [bad-assignment]
ERROR literals_literalstring.py:74:25-32: `Literal[b'test']` is not assignable to `LiteralString` [bad-assignment]
ERROR literals_literalstring.py:119:21-24: `str` is not assignable to upper bound `LiteralString` of type variable `TLiteral` [bad-specialization]
ERROR literals_literalstring.py:133:51-52: Argument `str` is not assignable to parameter `value` with type `LiteralString` in function `Container.__init__` [bad-argument-type]
ERROR literals_literalstring.py:170:21-24: `list[LiteralString]` is not assignable to `list[str]` [bad-assignment]
"""
12 changes: 6 additions & 6 deletions conformance/results/pyright/literals_literalstring.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,19 @@ literals_literalstring.py:36:29 - error: Type arguments for "Literal" must be No
literals_literalstring.py:37:22 - error: Type arguments for "Literal" must be None, a literal value (int, bool, str, or bytes), or an enum value (reportInvalidTypeForm)
literals_literalstring.py:43:23 - error: Type "Literal['two']" is not assignable to declared type "Literal['']"
  "Literal['two']" is not assignable to type "Literal['']" (reportAssignmentType)
literals_literalstring.py:66:25 - error: Type "str" is not assignable to declared type "LiteralString"
literals_literalstring.py:65:25 - error: Type "str" is not assignable to declared type "LiteralString"
  "str" is not assignable to "LiteralString" (reportAssignmentType)
literals_literalstring.py:74:25 - error: Type "Literal[3]" is not assignable to declared type "LiteralString"
literals_literalstring.py:73:25 - error: Type "Literal[3]" is not assignable to declared type "LiteralString"
  "Literal[3]" is not assignable to "LiteralString" (reportAssignmentType)
literals_literalstring.py:75:25 - error: Type "Literal[b"test"]" is not assignable to declared type "LiteralString"
literals_literalstring.py:74:25 - error: Type "Literal[b"test"]" is not assignable to declared type "LiteralString"
  "Literal[b"test"]" is not assignable to "LiteralString" (reportAssignmentType)
literals_literalstring.py:120:22 - error: Argument of type "str" cannot be assigned to parameter "s" of type "TLiteral@literal_identity" in function "literal_identity"
literals_literalstring.py:119:22 - error: Argument of type "str" cannot be assigned to parameter "s" of type "TLiteral@literal_identity" in function "literal_identity"
  Type "str" is not assignable to type "LiteralString"
    "str" is not assignable to "LiteralString" (reportArgumentType)
literals_literalstring.py:134:51 - error: Argument of type "str" cannot be assigned to parameter "value" of type "T@Container" in function "__init__"
literals_literalstring.py:133:51 - error: Argument of type "str" cannot be assigned to parameter "value" of type "T@Container" in function "__init__"
  Type "str" is not assignable to type "LiteralString"
    "str" is not assignable to "LiteralString" (reportArgumentType)
literals_literalstring.py:171:21 - error: Type "list[LiteralString]" is not assignable to declared type "list[str]"
literals_literalstring.py:170:21 - error: Type "list[LiteralString]" is not assignable to declared type "list[str]"
  "list[LiteralString]" is not assignable to "list[str]"
    Type parameter "_T@list" is invariant, but "LiteralString" is not the same as "str"
    Consider switching from "list" to "Sequence" which is covariant (reportAssignmentType)
Expand Down
16 changes: 8 additions & 8 deletions conformance/results/zuban/literals_literalstring.toml
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ output = """
literals_literalstring.py:36: error: Parameter 2 of Literal[...] is invalid [valid-type]
literals_literalstring.py:37: error: Parameter 1 of Literal[...] is invalid [valid-type]
literals_literalstring.py:43: error: Incompatible types in assignment (expression has type "Literal['two']", variable has type "Literal['']") [assignment]
literals_literalstring.py:66: error: Incompatible types in assignment (expression has type "str", variable has type "LiteralString") [assignment]
literals_literalstring.py:74: error: Incompatible types in assignment (expression has type "Literal[3]", variable has type "LiteralString") [assignment]
literals_literalstring.py:75: error: Incompatible types in assignment (expression has type "Literal[b'test']", variable has type "LiteralString") [assignment]
literals_literalstring.py:120: error: Value of type variable "TLiteral" of "literal_identity" cannot be "str" [type-var]
literals_literalstring.py:134: error: Value of type variable "T" of "Container" cannot be "str" [type-var]
literals_literalstring.py:171: error: Incompatible types in assignment (expression has type "list[LiteralString]", variable has type "list[str]") [assignment]
literals_literalstring.py:171: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
literals_literalstring.py:171: note: Consider using "Sequence" instead, which is covariant
literals_literalstring.py:65: error: Incompatible types in assignment (expression has type "str", variable has type "LiteralString") [assignment]
literals_literalstring.py:73: error: Incompatible types in assignment (expression has type "Literal[3]", variable has type "LiteralString") [assignment]
literals_literalstring.py:74: error: Incompatible types in assignment (expression has type "Literal[b'test']", variable has type "LiteralString") [assignment]
literals_literalstring.py:119: error: Value of type variable "TLiteral" of "literal_identity" cannot be "str" [type-var]
literals_literalstring.py:133: error: Value of type variable "T" of "Container" cannot be "str" [type-var]
literals_literalstring.py:170: error: Incompatible types in assignment (expression has type "list[LiteralString]", variable has type "list[str]") [assignment]
literals_literalstring.py:170: note: "List" is invariant -- see https://mypy.readthedocs.io/en/stable/common_issues.html#variance
literals_literalstring.py:170: note: Consider using "Sequence" instead, which is covariant
"""
9 changes: 4 additions & 5 deletions conformance/tests/literals_literalstring.py
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,14 @@ def func1(a: Literal["one"], b: Literal["two"]):
x2: Literal[""] = b # E


def func2(a: LiteralString, b: LiteralString):
def func2(a: LiteralString, b: LiteralString, non_literal: str):
# > Addition: x + y is of type LiteralString if both x and y are compatible with LiteralString.
assert_type(a + b, LiteralString)

# > Joining: sep.join(xs) is of type LiteralString if sep’s type is
# > compatible with LiteralString and xs’s type is compatible with Iterable[LiteralString].
assert_type(",".join((a, b)), LiteralString)
assert_type(",".join((a, str(b))), str)
assert_type(",".join((a, non_literal)), str)

# > In-place addition: If s has type LiteralString and x has type compatible with
# > LiteralString, then s += x preserves s’s type as LiteralString.
Expand All @@ -62,10 +62,9 @@ def func2(a: LiteralString, b: LiteralString):
# > s and the arguments have types compatible with LiteralString.
assert_type(f"{a} {b}", LiteralString)

variable = 3
x1: LiteralString = f"{a} {str(variable)}" # E
x1: LiteralString = f"{a} {non_literal}" # E

assert_type(a + str(1), str)
assert_type(a + non_literal, str)

# > LiteralString is compatible with the type str
x2: str = a
Expand Down