|
|
@@ -94,18 +94,22 @@ fn Main() -> i32 {
|
|
|
// CHECK:STDOUT: checking BindingPattern n: i32
|
|
|
// CHECK:STDOUT: checking ExpressionPattern i32
|
|
|
// CHECK:STDOUT: checking IntTypeLiteral i32
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: --- step exp i32 .0. (phase_all.carbon:11) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .1. {{\[\[}}i32]]
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `i32` (phase_all.carbon:11)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `i32` (phase_all.carbon:11) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `i32` (phase_all.carbon:11)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `i32` (phase_all.carbon:11) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `i32` (phase_all.carbon:11)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:11) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:11)
|
|
|
// CHECK:STDOUT: finished checking tuple pattern field n: i32
|
|
|
// CHECK:STDOUT: checking IntTypeLiteral i32
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: --- step exp i32 .0. (phase_all.carbon:11) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .1. {{\[\[}}i32]]
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `i32` (phase_all.carbon:11)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `i32` (phase_all.carbon:11) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `i32` (phase_all.carbon:11)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `i32` (phase_all.carbon:11) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `i32` (phase_all.carbon:11)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:11) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:11)
|
|
|
// CHECK:STDOUT: ** finished declaring function Foo of type fn (i32,) -> i32
|
|
|
// CHECK:STDOUT: checking FunctionDeclaration
|
|
|
// CHECK:STDOUT: ** checking function Foo
|
|
|
@@ -123,11 +127,13 @@ fn Main() -> i32 {
|
|
|
// CHECK:STDOUT: ** declaring function Main
|
|
|
// CHECK:STDOUT: checking TuplePattern ()
|
|
|
// CHECK:STDOUT: checking IntTypeLiteral i32
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: --- step exp i32 .0. (phase_all.carbon:15) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .1. {{\[\[}}i32]]
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `i32` (phase_all.carbon:15)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `i32` (phase_all.carbon:15) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `i32` (phase_all.carbon:15)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `i32` (phase_all.carbon:15) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `i32` (phase_all.carbon:15)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:15) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:15)
|
|
|
// CHECK:STDOUT: ** finished declaring function Main of type fn () -> i32
|
|
|
// CHECK:STDOUT: checking FunctionDeclaration
|
|
|
// CHECK:STDOUT: ** checking function Main
|
|
|
@@ -152,11 +158,13 @@ fn Main() -> i32 {
|
|
|
// CHECK:STDOUT: checking BindingPattern x: i32, expecting i32
|
|
|
// CHECK:STDOUT: checking ExpressionPattern i32, expecting i32
|
|
|
// CHECK:STDOUT: checking IntTypeLiteral i32
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: i32 .0.
|
|
|
-// CHECK:STDOUT: --- step exp i32 .0. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: i32 .1. {{\[\[}}i32]]
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `i32` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `i32` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `i32` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `i32` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `i32` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `i32` results: [`i32`] (phase_all.carbon:16)
|
|
|
// CHECK:STDOUT: checking ReturnExpression return x;
|
|
|
// CHECK:STDOUT: checking IdentifierExpression x
|
|
|
// CHECK:STDOUT: ** finished checking function Main
|
|
|
@@ -198,153 +206,146 @@ fn Main() -> i32 {
|
|
|
// CHECK:STDOUT: }
|
|
|
// CHECK:STDOUT: ********** starting execution **********
|
|
|
// CHECK:STDOUT: ********** initializing globals **********
|
|
|
-// CHECK:STDOUT: (+) stack-push: interface TestInterface {
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: .0.
|
|
|
-// CHECK:STDOUT: --- step decl interface TestInterface .0. (phase_all.carbon:7) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: interface TestInterface {
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: namespace N; .0.
|
|
|
-// CHECK:STDOUT: --- step decl namespace N .0. (phase_all.carbon:9) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: namespace N; .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: fn Foo (n: i32)-> i32 {
|
|
|
-// CHECK:STDOUT: {
|
|
|
-// CHECK:STDOUT: return (n + 1);
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: .0.
|
|
|
-// CHECK:STDOUT: --- step decl fn N.Foo .0. (phase_all.carbon:13) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: fn Foo (n: i32)-> i32 {
|
|
|
-// CHECK:STDOUT: {
|
|
|
-// CHECK:STDOUT: return (n + 1);
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: fn Main ()-> i32 {
|
|
|
-// CHECK:STDOUT: {
|
|
|
-// CHECK:STDOUT: var x: i32 = N.Foo(0);
|
|
|
-// CHECK:STDOUT: return x;
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: .0.
|
|
|
-// CHECK:STDOUT: --- step decl fn Main .0. (phase_all.carbon:18) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: fn Main ()-> i32 {
|
|
|
-// CHECK:STDOUT: {
|
|
|
-// CHECK:STDOUT: var x: i32 = N.Foo(0);
|
|
|
-// CHECK:STDOUT: return x;
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT:
|
|
|
-// CHECK:STDOUT: }
|
|
|
-// CHECK:STDOUT: .0.
|
|
|
+// CHECK:STDOUT: (+) stack-push: DeclarationAction pos: 0 `interface TestInterface` (phase_all.carbon:7)
|
|
|
+// CHECK:STDOUT: --- step DeclarationAction pos: 0 `interface TestInterface` (phase_all.carbon:7) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: DeclarationAction pos: 0 `interface TestInterface` (phase_all.carbon:7)
|
|
|
+// CHECK:STDOUT: (+) stack-push: DeclarationAction pos: 0 `namespace N` (phase_all.carbon:9)
|
|
|
+// CHECK:STDOUT: --- step DeclarationAction pos: 0 `namespace N` (phase_all.carbon:9) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: DeclarationAction pos: 0 `namespace N` (phase_all.carbon:9)
|
|
|
+// CHECK:STDOUT: (+) stack-push: DeclarationAction pos: 0 `fn N.Foo` (phase_all.carbon:13)
|
|
|
+// CHECK:STDOUT: --- step DeclarationAction pos: 0 `fn N.Foo` (phase_all.carbon:13) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: DeclarationAction pos: 0 `fn N.Foo` (phase_all.carbon:13)
|
|
|
+// CHECK:STDOUT: (+) stack-push: DeclarationAction pos: 0 `fn Main` (phase_all.carbon:18)
|
|
|
+// CHECK:STDOUT: --- step DeclarationAction pos: 0 `fn Main` (phase_all.carbon:18) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: DeclarationAction pos: 0 `fn Main` (phase_all.carbon:18)
|
|
|
// CHECK:STDOUT: ********** calling main function **********
|
|
|
-// CHECK:STDOUT: (+) stack-push: Main() .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: Main() .0.
|
|
|
-// CHECK:STDOUT: --- step exp Main() .0. (<Main()>:0) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: Main .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: Main .0.
|
|
|
-// CHECK:STDOUT: --- step exp Main .0. (<Main()>:0) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: Main .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: Main .1. {{\[\[}}fun<Main>]]
|
|
|
-// CHECK:STDOUT: --- step exp Main() .1. (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `Main()` (<Main()>:0)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `Main()` (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `Main()` (<Main()>:0)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `Main()` (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `Main` (<Main()>:0)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `Main` (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `Main` (<Main()>:0)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `Main` (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `Main` (<Main()>:0)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `Main` results: [`fun<Main>`] (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `Main` results: [`fun<Main>`] (<Main()>:0)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 1 `Main()` results: [`fun<Main>`] scope: [] (<Main()>:0) --->
|
|
|
// CHECK:STDOUT: calling function: fun<Main>
|
|
|
// CHECK:STDOUT: match pattern ()
|
|
|
// CHECK:STDOUT: from value expression with value ()
|
|
|
-// CHECK:STDOUT: (+) stack-push: .0. {}
|
|
|
-// CHECK:STDOUT: (+) stack-push: {var x: i32 = N.Foo(0);return x;} .0.
|
|
|
-// CHECK:STDOUT: --- step stmt {var x: i32 = N.Foo(0);return x;} .0. (phase_all.carbon:18) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: var x: i32 = N.Foo(0); .0.
|
|
|
-// CHECK:STDOUT: --- step stmt var x: i32 = N.Foo(0); .0. (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ScopeAction pos: 0 scope: [] (None)
|
|
|
+// CHECK:STDOUT: (+) stack-push: StatementAction pos: 0 `{var x: i32 = N.Foo(0);return x;}` (phase_all.carbon:18)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 0 `{var x: i32 = N.Foo(0);return x;}` (phase_all.carbon:18) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: StatementAction pos: 0 `var x: i32 = N.Foo(0);` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 0 `var x: i32 = N.Foo(0);` (phase_all.carbon:16) --->
|
|
|
// CHECK:STDOUT: (+) memory-alloc: #1 `Uninit<i32>` uninitialized
|
|
|
-// CHECK:STDOUT: (+) stack-push: N.Foo(0) .0.
|
|
|
-// CHECK:STDOUT: --- step exp N.Foo(0) .0. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: N.Foo .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: N.Foo .0.
|
|
|
-// CHECK:STDOUT: --- step exp N.Foo .0. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: N.Foo .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: Foo .0.
|
|
|
-// CHECK:STDOUT: --- step exp Foo .0. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: Foo .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: N.Foo .1. {{\[\[}}fun<N.Foo>]]
|
|
|
-// CHECK:STDOUT: --- step exp N.Foo(0) .1. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: 0 .0.
|
|
|
-// CHECK:STDOUT: --- step exp 0 .0. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: 0 .0.
|
|
|
-// CHECK:STDOUT: --- step exp N.Foo(0) .2. (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `N.Foo(0)` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `N.Foo(0)` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `N.Foo` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `N.Foo` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `N.Foo` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `N.Foo` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `N.Foo` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `Foo` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `Foo` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `Foo` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `N.Foo` results: [`fun<N.Foo>`] (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `N.Foo` results: [`fun<N.Foo>`] (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 1 `N.Foo(0)` results: [`fun<N.Foo>`] scope: [] (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `0` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `0` (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `0` (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 2 `N.Foo(0)` results: [`fun<N.Foo>`, `0`] scope: [] (phase_all.carbon:16) --->
|
|
|
// CHECK:STDOUT: calling function: fun<N.Foo>
|
|
|
// CHECK:STDOUT: match pattern (Placeholder<n>,)
|
|
|
// CHECK:STDOUT: from value expression with value (0,)
|
|
|
// CHECK:STDOUT: match pattern Placeholder<n>
|
|
|
// CHECK:STDOUT: from value expression with value 0
|
|
|
-// CHECK:STDOUT: (+) stack-push: .0. {n: i32: 0}
|
|
|
-// CHECK:STDOUT: (+) stack-push: {return (n + 1);} .0.
|
|
|
-// CHECK:STDOUT: --- step stmt {return (n + 1);} .0. (phase_all.carbon:13) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: return (n + 1); .0.
|
|
|
-// CHECK:STDOUT: --- step stmt return (n + 1); .0. (phase_all.carbon:12) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: (n + 1) .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: (n + 1) .0.
|
|
|
-// CHECK:STDOUT: --- step exp (n + 1) .0. (phase_all.carbon:12) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: n .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: n .0.
|
|
|
-// CHECK:STDOUT: --- step exp n .0. (phase_all.carbon:12) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: n .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: n .1. {{\[\[}}0]]
|
|
|
-// CHECK:STDOUT: --- step exp (n + 1) .1. (phase_all.carbon:12) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: 1 .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: 1 .0.
|
|
|
-// CHECK:STDOUT: --- step exp 1 .0. (phase_all.carbon:12) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: 1 .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: 1 .1. {{\[\[}}1]]
|
|
|
-// CHECK:STDOUT: --- step exp (n + 1) .2. (phase_all.carbon:12) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: (n + 1) .2. {{\[\[}}0, 1]]
|
|
|
-// CHECK:STDOUT: (-) stack-pop: (n + 1) .1. {{\[\[}}1]]
|
|
|
-// CHECK:STDOUT: --- step stmt return (n + 1); .1. (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ScopeAction pos: 0 scope: [`n: i32`: `0`] (None)
|
|
|
+// CHECK:STDOUT: (+) stack-push: StatementAction pos: 0 `{return (n + 1);}` (phase_all.carbon:13)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 0 `{return (n + 1);}` (phase_all.carbon:13) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: StatementAction pos: 0 `return (n + 1);` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 0 `return (n + 1);` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `(n + 1)` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `(n + 1)` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `(n + 1)` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `(n + 1)` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `n` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `n` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `n` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `n` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `n` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `n` results: [`0`] (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `n` results: [`0`] (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 1 `(n + 1)` results: [`0`] (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `1` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `1` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `1` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `1` (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `1` (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `1` results: [`1`] (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `1` results: [`1`] (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 2 `(n + 1)` results: [`0`, `1`] (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 2 `(n + 1)` results: [`0`, `1`] (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `(n + 1)` results: [`1`] (phase_all.carbon:12) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `(n + 1)` results: [`1`] (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 1 `return (n + 1);` results: [`1`] (phase_all.carbon:12) --->
|
|
|
// CHECK:STDOUT: +++ memory-write: #1 `1`
|
|
|
-// CHECK:STDOUT: (-) stack-pop: return (n + 1); .1. {{\[\[}}1]]
|
|
|
-// CHECK:STDOUT: (-) stack-pop: {return (n + 1);} .1. {}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: .0. {n: i32: 0}
|
|
|
-// CHECK:STDOUT: (+) stack-push: clean up.0. {n: i32: 0}
|
|
|
-// CHECK:STDOUT: (+) stack-push: clean up.0. {}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: clean up.0. {}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: clean up.0. {n: i32: 0}
|
|
|
-// CHECK:STDOUT: --- step exp N.Foo(0) .3. (phase_all.carbon:16) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: N.Foo(0) .3. {{\[\[}}fun<N.Foo>, 0, 1]] {}
|
|
|
-// CHECK:STDOUT: (+) stack-push: clean up.0. {}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: clean up.0. {}
|
|
|
-// CHECK:STDOUT: --- step stmt var x: i32 = N.Foo(0); .1. (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: StatementAction pos: 1 `return (n + 1);` results: [`1`] (phase_all.carbon:12)
|
|
|
+// CHECK:STDOUT: (-) stack-pop: StatementAction pos: 1 `{return (n + 1);}` scope: [] (phase_all.carbon:13)
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ScopeAction pos: 0 scope: [`n: i32`: `0`] (None)
|
|
|
+// CHECK:STDOUT: (+) stack-push: CleanUpAction pos: 0 scope: [`n: i32`: `0`] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: (+) stack-push: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 0 scope: [] (stack cleanup:1) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 0 scope: [`n: i32`: `0`] (stack cleanup:1) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: CleanUpAction pos: 0 scope: [`n: i32`: `0`] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 3 `N.Foo(0)` results: [`fun<N.Foo>`, `0`, `1`] scope: [] (phase_all.carbon:16) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 3 `N.Foo(0)` results: [`fun<N.Foo>`, `0`, `1`] scope: [] (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: (+) stack-push: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 0 scope: [] (stack cleanup:1) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 1 `var x: i32 = N.Foo(0);` results: [`1`] (phase_all.carbon:16) --->
|
|
|
// CHECK:STDOUT: +++ memory-read: #1 `1`
|
|
|
// CHECK:STDOUT: match pattern Placeholder<x>
|
|
|
// CHECK:STDOUT: from initializing expression with value 1
|
|
|
-// CHECK:STDOUT: (-) stack-pop: var x: i32 = N.Foo(0); .1. {{\[\[}}1]]
|
|
|
-// CHECK:STDOUT: --- step stmt {var x: i32 = N.Foo(0);return x;} .1. (phase_all.carbon:18) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: return x; .0.
|
|
|
-// CHECK:STDOUT: --- step stmt return x; .0. (phase_all.carbon:17) --->
|
|
|
-// CHECK:STDOUT: (+) stack-push: x .0.
|
|
|
-// CHECK:STDOUT: (+) stack-push: x .0.
|
|
|
-// CHECK:STDOUT: --- step exp x .0. (phase_all.carbon:17) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: StatementAction pos: 1 `var x: i32 = N.Foo(0);` results: [`1`] (phase_all.carbon:16)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 1 `{var x: i32 = N.Foo(0);return x;}` scope: [`x: i32`: `lval<Allocation(1)>`] (phase_all.carbon:18) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: StatementAction pos: 0 `return x;` (phase_all.carbon:17)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 0 `return x;` (phase_all.carbon:17) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ValueExpressionAction pos: 0 `x` (phase_all.carbon:17)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 0 `x` (phase_all.carbon:17) --->
|
|
|
+// CHECK:STDOUT: (+) stack-push: ExpressionAction pos: 0 `x` (phase_all.carbon:17)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 0 `x` (phase_all.carbon:17) --->
|
|
|
// CHECK:STDOUT: +++ memory-read: #1 `1`
|
|
|
-// CHECK:STDOUT: (-) stack-pop: x .0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: x .1. {{\[\[}}ref_expr<Allocation(1)>]]
|
|
|
-// CHECK:STDOUT: --- step stmt return x; .1. (phase_all.carbon:17) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: return x; .1. {{\[\[}}1]]
|
|
|
-// CHECK:STDOUT: (-) stack-pop: {var x: i32 = N.Foo(0);return x;} .2. {x: i32: lval<Allocation(1)>}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: .0. {}
|
|
|
-// CHECK:STDOUT: (+) stack-push: clean up.0. {}
|
|
|
-// CHECK:STDOUT: (+) stack-push: clean up.0. {x: i32: lval<Allocation(1)>}
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 0 `x` (phase_all.carbon:17)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `x` results: [`ref_expr<Allocation(1)>`] (phase_all.carbon:17) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `x` results: [`ref_expr<Allocation(1)>`] (phase_all.carbon:17)
|
|
|
+// CHECK:STDOUT: --- step StatementAction pos: 1 `return x;` results: [`1`] (phase_all.carbon:17) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: StatementAction pos: 1 `return x;` results: [`1`] (phase_all.carbon:17)
|
|
|
+// CHECK:STDOUT: (-) stack-pop: StatementAction pos: 2 `{var x: i32 = N.Foo(0);return x;}` scope: [`x: i32`: `lval<Allocation(1)>`] (phase_all.carbon:18)
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ScopeAction pos: 0 scope: [] (None)
|
|
|
+// CHECK:STDOUT: (+) stack-push: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: (+) stack-push: CleanUpAction pos: 0 scope: [`x: i32`: `lval<Allocation(1)>`] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 0 scope: [`x: i32`: `lval<Allocation(1)>`] (stack cleanup:1) --->
|
|
|
// CHECK:STDOUT: +++ memory-read: #1 `1`
|
|
|
-// CHECK:STDOUT: (+) stack-push: destroy.0.
|
|
|
-// CHECK:STDOUT: (-) stack-pop: destroy.0.
|
|
|
+// CHECK:STDOUT: (+) stack-push: DestroyAction pos: 0 (None)
|
|
|
+// CHECK:STDOUT: --- step DestroyAction pos: 0 (None) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: DestroyAction pos: 0 (None)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 1 scope: [`x: i32`: `lval<Allocation(1)>`] (stack cleanup:1) --->
|
|
|
// CHECK:STDOUT: (-) memory-dealloc: #1 `1`
|
|
|
-// CHECK:STDOUT: (-) stack-pop: clean up.2. {x: i32: lval<Allocation(1)>}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: clean up.0. {}
|
|
|
-// CHECK:STDOUT: --- step exp Main() .2. (<Main()>:0) --->
|
|
|
-// CHECK:STDOUT: (-) stack-pop: Main() .2. {{\[\[}}fun<Main>, 1]] {}
|
|
|
-// CHECK:STDOUT: (+) stack-push: clean up.0. {}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: clean up.0. {}
|
|
|
-// CHECK:STDOUT: (-) stack-pop: Main() .1. {{\[\[}}1]]
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 2 scope: [`x: i32`: `lval<Allocation(1)>`] (stack cleanup:1) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: CleanUpAction pos: 2 scope: [`x: i32`: `lval<Allocation(1)>`] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 0 scope: [] (stack cleanup:1) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step ExpressionAction pos: 2 `Main()` results: [`fun<Main>`, `1`] scope: [] (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ExpressionAction pos: 2 `Main()` results: [`fun<Main>`, `1`] scope: [] (<Main()>:0)
|
|
|
+// CHECK:STDOUT: (+) stack-push: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step CleanUpAction pos: 0 scope: [] (stack cleanup:1) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: CleanUpAction pos: 0 scope: [] (stack cleanup:1)
|
|
|
+// CHECK:STDOUT: --- step ValueExpressionAction pos: 1 `Main()` results: [`1`] (<Main()>:0) --->
|
|
|
+// CHECK:STDOUT: (-) stack-pop: ValueExpressionAction pos: 1 `Main()` results: [`1`] (<Main()>:0)
|
|
|
// CHECK:STDOUT: interpreter result: 1
|
|
|
// CHECK:STDOUT: ********** printing timing **********
|
|
|
// CHECK:STDOUT: Time elapsed in ExecProgram: {{\d+}}ms
|