roc/test/snapshots/expr/tuple_patterns.md

9.2 KiB

META

description=Tuple pattern matching tests
type=expr

SOURCE

{

    # Simple tuple destructuring
    (x, y) = (1, 2)

    # Nested tuple patterns
    ((a, b), (c, d)) = ((10, 20), (30, 40))

    # Mixed patterns with literals
    (first, second, third) = (100, 42, 200)

    # Tuple with string and tag patterns
    (name, string, boolean) = ("Alice", "fixed", True)

    # Tuple with list pattern
    (list, hello) = ([1, 2, 3], "hello")

    {}
}

EXPECTED

UNUSED VARIABLE - tuple_patterns.md:4:6:4:7 UNUSED VARIABLE - tuple_patterns.md:4:9:4:10 UNUSED VARIABLE - tuple_patterns.md:7:7:7:8 UNUSED VARIABLE - tuple_patterns.md:7:10:7:11 UNUSED VARIABLE - tuple_patterns.md:7:15:7:16 UNUSED VARIABLE - tuple_patterns.md:7:18:7:19 UNUSED VARIABLE - tuple_patterns.md:10:6:10:11 UNUSED VARIABLE - tuple_patterns.md:10:13:10:19 UNUSED VARIABLE - tuple_patterns.md:10:21:10:26 UNUSED VARIABLE - tuple_patterns.md:13:6:13:10 UNUSED VARIABLE - tuple_patterns.md:13:12:13:18 UNUSED VARIABLE - tuple_patterns.md:13:20:13:27 UNUSED VARIABLE - tuple_patterns.md:16:6:16:10 UNUSED VARIABLE - tuple_patterns.md:16:12:16:17

PROBLEMS

UNUSED VARIABLE Variable x is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _x to suppress this warning. The unused variable is declared here: tuple_patterns.md:4:6:4:7:

    (x, y) = (1, 2)
 ^

UNUSED VARIABLE Variable y is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _y to suppress this warning. The unused variable is declared here: tuple_patterns.md:4:9:4:10:

    (x, y) = (1, 2)
    ^

UNUSED VARIABLE Variable a is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _a to suppress this warning. The unused variable is declared here: tuple_patterns.md:7:7:7:8:

    ((a, b), (c, d)) = ((10, 20), (30, 40))
  ^

UNUSED VARIABLE Variable b is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _b to suppress this warning. The unused variable is declared here: tuple_patterns.md:7:10:7:11:

    ((a, b), (c, d)) = ((10, 20), (30, 40))
     ^

UNUSED VARIABLE Variable c is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _c to suppress this warning. The unused variable is declared here: tuple_patterns.md:7:15:7:16:

    ((a, b), (c, d)) = ((10, 20), (30, 40))
          ^

UNUSED VARIABLE Variable d is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _d to suppress this warning. The unused variable is declared here: tuple_patterns.md:7:18:7:19:

    ((a, b), (c, d)) = ((10, 20), (30, 40))
             ^

UNUSED VARIABLE Variable first is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _first to suppress this warning. The unused variable is declared here: tuple_patterns.md:10:6:10:11:

    (first, second, third) = (100, 42, 200)
 ^^^^^

UNUSED VARIABLE Variable second is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _second to suppress this warning. The unused variable is declared here: tuple_patterns.md:10:13:10:19:

    (first, second, third) = (100, 42, 200)
        ^^^^^^

UNUSED VARIABLE Variable third is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _third to suppress this warning. The unused variable is declared here: tuple_patterns.md:10:21:10:26:

    (first, second, third) = (100, 42, 200)
                ^^^^^

UNUSED VARIABLE Variable name is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _name to suppress this warning. The unused variable is declared here: tuple_patterns.md:13:6:13:10:

    (name, string, boolean) = ("Alice", "fixed", True)
 ^^^^

UNUSED VARIABLE Variable string is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _string to suppress this warning. The unused variable is declared here: tuple_patterns.md:13:12:13:18:

    (name, string, boolean) = ("Alice", "fixed", True)
       ^^^^^^

UNUSED VARIABLE Variable boolean is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _boolean to suppress this warning. The unused variable is declared here: tuple_patterns.md:13:20:13:27:

    (name, string, boolean) = ("Alice", "fixed", True)
               ^^^^^^^

UNUSED VARIABLE Variable list is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _list to suppress this warning. The unused variable is declared here: tuple_patterns.md:16:6:16:10:

    (list, hello) = ([1, 2, 3], "hello")
 ^^^^

UNUSED VARIABLE Variable hello is not used anywhere in your code.

If you don't need this variable, prefix it with an underscore like _hello to suppress this warning. The unused variable is declared here: tuple_patterns.md:16:12:16:17:

    (list, hello) = ([1, 2, 3], "hello")
       ^^^^^

TOKENS

OpenCurly,
OpenRound,LowerIdent,Comma,LowerIdent,CloseRound,OpAssign,OpenRound,Int,Comma,Int,CloseRound,
OpenRound,NoSpaceOpenRound,LowerIdent,Comma,LowerIdent,CloseRound,Comma,OpenRound,LowerIdent,Comma,LowerIdent,CloseRound,CloseRound,OpAssign,OpenRound,NoSpaceOpenRound,Int,Comma,Int,CloseRound,Comma,OpenRound,Int,Comma,Int,CloseRound,CloseRound,
OpenRound,LowerIdent,Comma,LowerIdent,Comma,LowerIdent,CloseRound,OpAssign,OpenRound,Int,Comma,Int,Comma,Int,CloseRound,
OpenRound,LowerIdent,Comma,LowerIdent,Comma,LowerIdent,CloseRound,OpAssign,OpenRound,StringStart,StringPart,StringEnd,Comma,StringStart,StringPart,StringEnd,Comma,UpperIdent,CloseRound,
OpenRound,LowerIdent,Comma,LowerIdent,CloseRound,OpAssign,OpenRound,OpenSquare,Int,Comma,Int,Comma,Int,CloseSquare,Comma,StringStart,StringPart,StringEnd,CloseRound,
OpenCurly,CloseCurly,
CloseCurly,
EndOfFile,

PARSE

(e-block
	(statements
		(s-decl
			(p-tuple
				(p-ident (raw "x"))
				(p-ident (raw "y")))
			(e-tuple
				(e-int (raw "1"))
				(e-int (raw "2"))))
		(s-decl
			(p-tuple
				(p-tuple
					(p-ident (raw "a"))
					(p-ident (raw "b")))
				(p-tuple
					(p-ident (raw "c"))
					(p-ident (raw "d"))))
			(e-tuple
				(e-tuple
					(e-int (raw "10"))
					(e-int (raw "20")))
				(e-tuple
					(e-int (raw "30"))
					(e-int (raw "40")))))
		(s-decl
			(p-tuple
				(p-ident (raw "first"))
				(p-ident (raw "second"))
				(p-ident (raw "third")))
			(e-tuple
				(e-int (raw "100"))
				(e-int (raw "42"))
				(e-int (raw "200"))))
		(s-decl
			(p-tuple
				(p-ident (raw "name"))
				(p-ident (raw "string"))
				(p-ident (raw "boolean")))
			(e-tuple
				(e-string
					(e-string-part (raw "Alice")))
				(e-string
					(e-string-part (raw "fixed")))
				(e-tag (raw "True"))))
		(s-decl
			(p-tuple
				(p-ident (raw "list"))
				(p-ident (raw "hello")))
			(e-tuple
				(e-list
					(e-int (raw "1"))
					(e-int (raw "2"))
					(e-int (raw "3")))
				(e-string
					(e-string-part (raw "hello")))))
		(e-record)))

FORMATTED

{

	# Simple tuple destructuring
	(x, y) = (1, 2)

	# Nested tuple patterns
	((a, b), (c, d)) = ((10, 20), (30, 40))

	# Mixed patterns with literals
	(first, second, third) = (100, 42, 200)

	# Tuple with string and tag patterns
	(name, string, boolean) = ("Alice", "fixed", True)

	# Tuple with list pattern
	(list, hello) = ([1, 2, 3], "hello")

	{}
}

CANONICALIZE

(e-block
	(s-let
		(p-tuple
			(patterns
				(p-assign (ident "x"))
				(p-assign (ident "y"))))
		(e-tuple
			(elems
				(e-num (value "1"))
				(e-num (value "2")))))
	(s-let
		(p-tuple
			(patterns
				(p-tuple
					(patterns
						(p-assign (ident "a"))
						(p-assign (ident "b"))))
				(p-tuple
					(patterns
						(p-assign (ident "c"))
						(p-assign (ident "d"))))))
		(e-tuple
			(elems
				(e-tuple
					(elems
						(e-num (value "10"))
						(e-num (value "20"))))
				(e-tuple
					(elems
						(e-num (value "30"))
						(e-num (value "40")))))))
	(s-let
		(p-tuple
			(patterns
				(p-assign (ident "first"))
				(p-assign (ident "second"))
				(p-assign (ident "third"))))
		(e-tuple
			(elems
				(e-num (value "100"))
				(e-num (value "42"))
				(e-num (value "200")))))
	(s-let
		(p-tuple
			(patterns
				(p-assign (ident "name"))
				(p-assign (ident "string"))
				(p-assign (ident "boolean"))))
		(e-tuple
			(elems
				(e-string
					(e-literal (string "Alice")))
				(e-string
					(e-literal (string "fixed")))
				(e-tag (name "True")))))
	(s-let
		(p-tuple
			(patterns
				(p-assign (ident "list"))
				(p-assign (ident "hello"))))
		(e-tuple
			(elems
				(e-list
					(elems
						(e-num (value "1"))
						(e-num (value "2"))
						(e-num (value "3"))))
				(e-string
					(e-literal (string "hello"))))))
	(e-empty_record))

TYPES

(expr (type "{}"))