summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaria Carolin Chabowski <laria@laria.me>2020-05-01 17:41:37 +0200
committerLaria Carolin Chabowski <laria@laria.me>2020-05-01 17:55:59 +0200
commit379131508a321abb88ccc14f5fc99d6a3e82f3f5 (patch)
tree93a423777edb2b7df62fc3d1607ebdb2b55e6bde
parent7449faaa76a5b4008fd51a6562cca2e0a852ea6b (diff)
downloadste-379131508a321abb88ccc14f5fc99d6a3e82f3f5.tar.gz
ste-379131508a321abb88ccc14f5fc99d6a3e82f3f5.tar.bz2
ste-379131508a321abb88ccc14f5fc99d6a3e82f3f5.zip
Fix compiling static numeric array access
-rw-r--r--src/ste/VariableNode.php2
-rw-r--r--tests/test_static_numeric_array_access/.gitignore3
-rw-r--r--tests/test_static_numeric_array_access/code.php12
-rw-r--r--tests/test_static_numeric_array_access/test.tpl3
-rw-r--r--tests/test_static_numeric_array_access/want3
5 files changed, 22 insertions, 1 deletions
diff --git a/src/ste/VariableNode.php b/src/ste/VariableNode.php
index 9a4ced8..9752d28 100644
--- a/src/ste/VariableNode.php
+++ b/src/ste/VariableNode.php
@@ -22,7 +22,7 @@ class VariableNode extends ASTNode
&& ($af[0] instanceof TextNode)
&& is_numeric($af[0]->text)
) {
- $varaccess .= '[' . $af->text . ']';
+ $varaccess .= '[' . $af[0]->text . ']';
} else {
$varaccess .= '[' . implode(".", array_map(function ($node) {
if ($node instanceof TextNode) {
diff --git a/tests/test_static_numeric_array_access/.gitignore b/tests/test_static_numeric_array_access/.gitignore
new file mode 100644
index 0000000..de2a41b
--- /dev/null
+++ b/tests/test_static_numeric_array_access/.gitignore
@@ -0,0 +1,3 @@
+have
+*.ast
+*.transc.php
diff --git a/tests/test_static_numeric_array_access/code.php b/tests/test_static_numeric_array_access/code.php
new file mode 100644
index 0000000..77f48be
--- /dev/null
+++ b/tests/test_static_numeric_array_access/code.php
@@ -0,0 +1,12 @@
+<?php
+
+use kch42\ste\STECore;
+
+function test_func(STECore $ste)
+{
+ $ste->set_var_by_name("foo", array(
+ "foo",
+ "bar",
+ "baz",
+ ));
+}
diff --git a/tests/test_static_numeric_array_access/test.tpl b/tests/test_static_numeric_array_access/test.tpl
new file mode 100644
index 0000000..a313c6b
--- /dev/null
+++ b/tests/test_static_numeric_array_access/test.tpl
@@ -0,0 +1,3 @@
+$foo[0]
+$foo[1]
+$foo[2]
diff --git a/tests/test_static_numeric_array_access/want b/tests/test_static_numeric_array_access/want
new file mode 100644
index 0000000..86e041d
--- /dev/null
+++ b/tests/test_static_numeric_array_access/want
@@ -0,0 +1,3 @@
+foo
+bar
+baz