diff --git a/tests/reference/asr-subscript1-1acfc19.json b/tests/reference/asr-subscript1-1acfc19.json index f95b20cc69..8ca9474572 100644 --- a/tests/reference/asr-subscript1-1acfc19.json +++ b/tests/reference/asr-subscript1-1acfc19.json @@ -2,11 +2,11 @@ "basename": "asr-subscript1-1acfc19", "cmd": "lpython --show-asr --no-color {infile} -o {outfile}", "infile": "tests/subscript1.py", - "infile_hash": "24efc3980ad13e8772a093253b380c91ce3b38071d69200e5af33d36", + "infile_hash": "5d229893d3e13ea4463e8ed47eb3798be0b8c28f5ef6b6c773e87b80", "outfile": null, "outfile_hash": null, "stdout": "asr-subscript1-1acfc19.stdout", - "stdout_hash": "f7bf6b29c18149b3c536af48eb59a1133156ac03fba83603a083d0fb", + "stdout_hash": "bb7b8b7478d50742985082735dfa0d2cf059f67e66a730c1c14915e2", "stderr": null, "stderr_hash": null, "returncode": 0 diff --git a/tests/reference/asr-subscript1-1acfc19.stdout b/tests/reference/asr-subscript1-1acfc19.stdout index 8be93abb61..48711b551f 100644 --- a/tests/reference/asr-subscript1-1acfc19.stdout +++ b/tests/reference/asr-subscript1-1acfc19.stdout @@ -1 +1 @@ -(TranslationUnit (SymbolTable 1 {main_program: (Program (SymbolTable 3 {}) main_program [] []), test_subscript: (Subroutine (SymbolTable 2 {A: (Variable 2 A Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) Source Public Required .false.), B: (Variable 2 B Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])))]) Source Public Required .false.), i: (Variable 2 i Local () () Default (Integer 4 []) Source Public Required .false.), s: (Variable 2 s Local () () Default (Character 1 -2 () []) Source Public Required .false.)}) test_subscript [] [(= (Var 2 s) (ConstantString "abc" (Character 1 3 () [])) ()) (= (Var 2 s) (ArrayRef 2 s [(() (ConstantInteger 0 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 i) (ArrayRef 2 A [(() (ConstantInteger 0 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ()) (= (Var 2 B) (ArrayRef 2 A [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ())] Source Public Implementation () .false. .false.)}) []) +(TranslationUnit (SymbolTable 1 {main_program: (Program (SymbolTable 3 {}) main_program [] []), test_subscript: (Subroutine (SymbolTable 2 {A: (Variable 2 A Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) Source Public Required .false.), B: (Variable 2 B Local () () Default (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])))]) Source Public Required .false.), i: (Variable 2 i Local () () Default (Integer 4 []) Source Public Required .false.), s: (Variable 2 s Local () () Default (Character 1 -2 () []) Source Public Required .false.)}) test_subscript [] [(= (Var 2 s) (ConstantString "abc" (Character 1 3 () [])) ()) (= (Var 2 s) (ArrayRef 2 s [(() (ConstantInteger 0 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() () ())] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() () (UnaryOp USub (ConstantInteger 1 (Integer 4 [])) (Integer 4 []) (ConstantInteger -1 (Integer 4 []))))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() () (ConstantInteger 2 (Integer 4 [])))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 88 (Integer 4 [])) (ConstantInteger 1 (Integer 4 [])))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [(() (ConstantInteger 1 (Integer 4 [])) (UnaryOp USub (ConstantInteger 4 (Integer 4 [])) (Integer 4 []) (ConstantInteger -4 (Integer 4 []))))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((UnaryOp USub (ConstantInteger 89 (Integer 4 [])) (Integer 4 []) (ConstantInteger -89 (Integer 4 []))) () (ConstantInteger 4 (Integer 4 [])))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((UnaryOp USub (ConstantInteger 3 (Integer 4 [])) (Integer 4 []) (ConstantInteger -3 (Integer 4 []))) (UnaryOp USub (ConstantInteger 3 (Integer 4 [])) (Integer 4 []) (ConstantInteger -3 (Integer 4 []))) (UnaryOp USub (ConstantInteger 3 (Integer 4 [])) (Integer 4 []) (ConstantInteger -3 (Integer 4 []))))] (Character 1 -2 () []) ()) ()) (= (Var 2 s) (ArrayRef 2 s [((ConstantInteger 2 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ())] (Character 1 -2 () []) ()) ()) (= (Var 2 i) (ArrayRef 2 A [(() (ConstantInteger 0 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ()) (= (Var 2 B) (ArrayRef 2 A [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])) ())] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ()) (= (Var 2 B) (ArrayRef 2 A [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 2 (Integer 4 [])) (ConstantInteger 3 (Integer 4 [])))] (Integer 4 [((ConstantInteger 1 (Integer 4 [])) (ConstantInteger 5 (Integer 4 [])))]) ()) ())] Source Public Implementation () .false. .false.)}) []) diff --git a/tests/reference/ast-subscript1-bd5584b.json b/tests/reference/ast-subscript1-bd5584b.json index 67b04dcb2c..6abc6f878e 100644 --- a/tests/reference/ast-subscript1-bd5584b.json +++ b/tests/reference/ast-subscript1-bd5584b.json @@ -2,11 +2,11 @@ "basename": "ast-subscript1-bd5584b", "cmd": "lpython --show-ast --no-color {infile} -o {outfile}", "infile": "tests/subscript1.py", - "infile_hash": "24efc3980ad13e8772a093253b380c91ce3b38071d69200e5af33d36", + "infile_hash": "5d229893d3e13ea4463e8ed47eb3798be0b8c28f5ef6b6c773e87b80", "outfile": null, "outfile_hash": null, "stdout": "ast-subscript1-bd5584b.stdout", - "stdout_hash": "a3078483928581b43987ad69903c0319507833a869b1e1fe7d52edb5", + "stdout_hash": "64e0e5bf1c53e455034996484f2449e2e18f526448a00dd79b58fb32", "stderr": null, "stderr_hash": null, "returncode": 0 diff --git a/tests/reference/ast-subscript1-bd5584b.stdout b/tests/reference/ast-subscript1-bd5584b.stdout index e1a82401cb..573c86740e 100644 --- a/tests/reference/ast-subscript1-bd5584b.stdout +++ b/tests/reference/ast-subscript1-bd5584b.stdout @@ -1 +1 @@ -(Module [(FunctionDef test_subscript ([] [] [] [] [] [] []) [(AnnAssign (Name s Store) (Name str Load) () 1) (Assign [(Name s Store)] (ConstantStr "abc" ()) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 1 ()) (ConstantInt 2 ()) ()) Load) ()) (AnnAssign (Name A Store) (Subscript (Name i32 Load) (ConstantInt 5 ()) Load) () 1) (AnnAssign (Name B Store) (Subscript (Name i32 Load) (ConstantInt 2 ()) Load) () 1) (AnnAssign (Name i Store) (Name i32 Load) () 1) (Assign [(Name i Store)] (Subscript (Name A Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name B Store)] (Subscript (Name A Load) (Slice (ConstantInt 1 ()) (ConstantInt 3 ()) ()) Load) ())] [] () ())] []) +(Module [(FunctionDef test_subscript ([] [] [] [] [] [] []) [(AnnAssign (Name s Store) (Name str Load) () 1) (Assign [(Name s Store)] (ConstantStr "abc" ()) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 1 ()) (ConstantInt 2 ()) ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () () ()) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () () (UnaryOp USub (ConstantInt 1 ()))) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () () (ConstantInt 2 ())) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 1 ()) (ConstantInt 88 ()) (ConstantInt 1 ())) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice () (ConstantInt 1 ()) (UnaryOp USub (ConstantInt 4 ()))) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (UnaryOp USub (ConstantInt 89 ())) () (ConstantInt 4 ())) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (UnaryOp USub (ConstantInt 3 ())) (UnaryOp USub (ConstantInt 3 ())) (UnaryOp USub (ConstantInt 3 ()))) Load) ()) (Assign [(Name s Store)] (Subscript (Name s Load) (Slice (ConstantInt 2 ()) (ConstantInt 3 ()) ()) Load) ()) (AnnAssign (Name A Store) (Subscript (Name i32 Load) (ConstantInt 5 ()) Load) () 1) (AnnAssign (Name B Store) (Subscript (Name i32 Load) (ConstantInt 2 ()) Load) () 1) (AnnAssign (Name i Store) (Name i32 Load) () 1) (Assign [(Name i Store)] (Subscript (Name A Load) (ConstantInt 0 ()) Load) ()) (Assign [(Name B Store)] (Subscript (Name A Load) (Slice (ConstantInt 1 ()) (ConstantInt 3 ()) ()) Load) ()) (Assign [(Name B Store)] (Subscript (Name A Load) (Slice (ConstantInt 1 ()) (ConstantInt 2 ()) (ConstantInt 3 ())) Load) ())] [] () ())] []) diff --git a/tests/subscript1.py b/tests/subscript1.py index 7130c598b8..25b59e145e 100644 --- a/tests/subscript1.py +++ b/tests/subscript1.py @@ -3,9 +3,19 @@ def test_subscript(): s = 'abc' s = s[0] s = s[1:2] + s = s[::] + s = s[::-1] + s = s[::2] + s = s[1:88:1] + s = s[:1:-4] + s = s[-89::4] + s = s[-3:-3:-3] + s = s[2:3:] + A: i32[5] B: i32[2] i: i32 i = A[0] B = A[1:3] + B = A[1:2:3]