• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

KarpelesLab / goro / 26081419167
13%

Build:
DEFAULT BRANCH: master
Ran 19 May 2026 07:05AM UTC
Jobs 1
Files 398
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

19 May 2026 06:54AM UTC coverage: 12.31% (-31.6%) from 43.914%
26081419167

push

github

MagicalTux
vm: lower isset/empty array-access natively (\$container[\$key])

Adds OP_ISSET_DIM / OP_EMPTY_DIM. The per-arg dispatch in
emit_expr.go now handles two native shapes:
 - simple variable (\$x) — still OP_ISSET_LOCAL / OP_EMPTY_LOCAL
 - array access (\$x[\$k], also nested \$x[\$k1][\$k2]) — emit the
   container + offset, then the dim opcode

OP_ISSET_DIM calls compiler.EvalIssetDim — extracted from the AST's
checkExistence runArrayAccess branch, covering null-key deprecation,
array/object-key TypeErrors, string-offset coercion, ArrayAccess
FindIssetDimHandler dispatch, and the regular array exists+not-null
check.

OP_EMPTY_DIM calls compiler.EvalEmptyDim with the same shape for the
empty() variant.

Bodies whose only isset/empty usage is supported shapes (simple var
or array-access nesting on simple vars) stay slot-safe.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

88 of 274 new or added lines in 5 files covered. (32.12%)

37030 existing lines in 335 files now uncovered.

14439 of 117292 relevant lines covered (12.31%)

2557.97 hits per line

Uncovered Changes

Lines Coverage ∆ File
136
9.29
-41.76% core/compiler/compile-isset.go
36
67.09
-9.66% core/vm/vmcompiler/emit_expr.go
10
60.5
-13.77% core/vm/vm.go
4
70.77
-9.76% core/compiler/vmaccess.go

Coverage Regressions

Lines Coverage ∆ File
1694
0.0
-63.37% ext/standard/strings.go
1227
2.41
-52.73% ext/standard/array.go
1110
11.69
-61.8% core/compiler/closure.go
1093
13.52
-41.5% core/phpobj/zclass.go
993
22.2
-38.4% core/phpobj/zobject.go
837
0.0
-55.8% ext/date/timezone.go
829
23.08
-42.8% core/phpctx/global.go
772
23.62
-37.6% core/compiler/compile-object.go
659
0.0
-46.34% ext/standard/fs.go
648
23.27
-36.51% core/compiler/run-operator.go
613
20.04
-26.37% core/compiler/compile-func.go
564
19.91
-27.59% core/compiler/compile-class.go
521
1.26
-54.78% ext/standard/base.go
465
31.38
-39.44% core/compiler/compile-array.go
425
2.45
-69.56% ext/standard/math.go
415
0.0
-22.57% ext/reflection/class_extra.go
378
2.37
-68.85% core/callable.go
377
0.0
-9.11% ext/date/datetime.go
369
0.0
-78.85% ext/reflection/attribute.go
346
43.21
-35.85% core/phpctx/global-call.go
312
10.6
-38.47% core/compiler/compile-classref.go
308
0.0
-21.2% ext/standard/serialize.go
299
10.04
-61.27% core/compiler/compile-attr.go
294
0.0
-52.69% ext/standard/streamfuncs.go
284
0.0
-42.45% ext/mbstring/mbstring.go
280
9.29
-41.76% core/compiler/compile-isset.go
280
0.0
-10.03% ext/spl/iterators.go
276
0.0
-81.9% ext/standard/array_intersect.go
270
0.0
-60.67% ext/session/session.go
254
0.0
-42.55% ext/spl/functions.go
252
11.05
-73.26% ext/standard/array_sort.go
251
0.0
-25.28% ext/mbstring/mbstring_extra.go
248
0.0
-76.78% ext/standard/missing_funcs2.go
247
0.0
-44.58% ext/mbstring/mbstring_funcs.go
244
0.0
-25.47% ext/date/date_funcs.go
238
24.04
-53.97% core/compiler/variable.go
232
0.0
-33.48% ext/reflection/method.go
230
0.0
-41.52% ext/standard/fs_stat.go
229
0.0
-30.95% ext/sockets/sockets.go
226
27.68
-34.56% core/compiler/compile-expr.go
224
0.0
-33.94% ext/reflection/property.go
223
2.45
-60.76% ext/standard/html.go
218
0.0
-81.34% ext/reflection/ext.go
216
9.34
-44.81% core/basefunc.go
215
0.0
-74.65% ext/standard/array_diff.go
214
0.0
-30.57% ext/reflection/class.go
210
0.0
-15.86% ext/mbstring/encoding.go
206
8.06
-66.45% core/compiler/compile-attributed.go
203
0.0
-55.77% ext/reflection/function.go
198
7.74
-58.93% core/compiler/compile-clone.go
195
0.0
-43.24% core/zprintf.go
194
11.14
-50.26% core/phpv/comparison.go
194
0.0
-72.93% ext/standard/ini.go
190
0.0
-69.6% ext/standard/misc.go
183
0.0
-70.11% ext/standard/network.go
183
0.0
-55.96% ext/standard/vardump.go
174
0.0
-18.91% ext/standard/missing_funcs.go
172
18.35
-45.74% core/phpv/ztype.go
168
0.0
-26.62% core/compiler/compile-enum.go
167
58.64
-25.77% core/phpv/hashtable.go
166
0.0
-30.07% ext/xml/simplexml.go
164
33.96
-43.85% core/params.go
160
1.79
-47.62% core/compiler/compile-namespace.go
160
0.0
-28.22% ext/pcre/match.go
159
25.47
-42.63% core/phpobj/attribute.go
157
21.62
-35.36% core/phpobj/exception.go
154
0.0
-39.19% ext/pcre/replace.go
153
0.0
-54.45% ext/zlib/zlib.go
151
0.0
-51.89% core/phpctx/global-inc.go
151
0.0
-24.96% ext/mysqli/mysqli.go
150
3.21
-48.08% core/stream/stream.go
149
22.82
-44.74% core/phpv/zstring.go
148
33.88
-34.82% core/phpv/zarray.go
147
0.0
-84.48% ext/standard/strings_hebrev.go
143
0.0
-66.2% core/stream/user_filter.go
143
60.5
-13.77% core/vm/vm.go
139
0.0
-31.88% ext/reflection/classconstant.go
133
0.0
-47.0% core/funcfunc.go
133
40.44
-36.84% core/phpctx/context-func.go
131
1.5
-65.5% core/tokenizer/heredoc.go
128
0.0
-26.83% ext/reflection/lazy.go
127
0.0
-30.75% core/compiler/compile-property-hooks.go
127
0.0
-25.6% ext/curl/curl.go
123
0.65
-26.51% core/phpobj/lazy.go
123
0.0
-33.7% ext/openssl/encrypt.go
121
15.65
-28.27% core/phpv/typehint.go
118
0.0
-30.89% ext/reflection/parameter.go
115
0.0
-64.25% core/error.go
114
0.0
-27.01% ext/gmp/misc.go
113
0.0
-46.5% core/phpctx/buffer.go
113
9.54
-46.89% core/stream/file.go
113
0.0
-59.16% ext/standard/array_multisort.go
112
0.0
-86.15% ext/standard/natcmp.go
110
0.0
-86.61% ext/standard/syntax_highlight.go
109
0.0
-43.95% ext/standard/network_socket.go
109
0.0
-33.64% ext/xml/parser.go
108
0.0
-70.13% ext/standard/math_conv.go
104
8.04
-33.44% core/stream/php.go
104
0.0
-85.25% ext/standard/assert.go
104
0.0
-55.03% ext/standard/printr.go
103
29.14
-11.16% core/phpobj/generator.go
102
0.0
-22.17% ext/zlib/stream.go
100
0.0
-71.43% ext/ctype/ctype.go
99
25.41
-32.67% core/compiler/compile-quote.go
99
0.0
-19.92% ext/standard/url.go
97
0.0
-100.0% ext/spl/ext.go
96
0.0
-87.27% ext/standard/uuencode.go
94
0.0
-25.47% ext/openssl/pkey.go
94
0.0
-7.21% ext/spl/array_object.go
94
0.0
-9.08% ext/spl/file_object.go
93
37.28
-12.38% core/compiler/compile-foreach.go
93
2.63
-81.58% core/phpv/trace.go
92
0.0
-15.36% ext/json/decode.go
92
0.0
-100.0% ext/pcre/ext.go
92
0.0
-65.71% ext/standard/exec.go
92
0.0
-45.54% ext/standard/password.go
91
0.0
-37.45% core/compiler/run-enum.go
91
0.0
-56.88% core/phpctx/global-fs.go
88
0.0
-86.27% ext/standard/typecheck.go
85
0.0
-17.28% ext/spl/directory_iterator.go
84
0.0
-31.46% core/compiler/compile-declare.go
83
0.0
-100.0% ext/mysqli/ext.go
80
0.0
-100.0% ext/date/exceptions.go
80
0.0
-42.78% ext/standard/dir_handle.go
80
0.0
-57.97% ext/standard/printf.go
79
61.35
-24.23% core/phpobj/throw.go
78
0.0
-100.0% ext/date/ext.go
78
2.32
-20.1% ext/standard/dir.go
77
52.22
-16.28% core/compiler/dispatch.go
77
0.0
-44.77% core/stream/user.go
76
0.0
-34.08% ext/standard/varexport.go
75
41.18
-15.76% core/compiler/compile-base.go
75
0.0
-100.0% ext/mbstring/ext.go
75
0.0
-76.53% ext/standard/locale.go
74
0.0
-100.0% ext/gmp/ext.go
73
23.29
-33.33% core/vm/ops_array.go
72
0.0
-100.0% ext/sockets/ext.go
71
42.31
-39.01% core/compiler/compile-static.go
71
35.26
-37.37% core/ini/ini.go
71
67.09
-9.66% core/vm/vmcompiler/emit_expr.go
70
0.0
-34.48% ext/gmp/div.go
67
0.0
-7.57% ext/standard/image.go
65
0.0
-63.73% core/is_callable.go
65
0.0
-33.68% ext/hash/hash.go
63
0.0
-100.0% ext/curl/ext.go
62
30.13
-25.94% core/compiler/compile-for.go
61
0.0
-52.59% ext/spl/infinite_iterator.go
61
0.0
-84.72% ext/zlib/ext.go
59
0.0
-70.24% core/autoload.go
59
28.74
-16.95% core/compiler/compile-destructure.go
59
0.0
-49.17% ext/standard/cast.go
57
0.0
-13.07% ext/spl/array_iterator.go
56
43.81
-17.78% core/compiler/compile-try-catch.go
56
0.0
-51.38% ext/reflection/constant.go
55
55.04
-21.32% core/phpv/zval.go
53
31.27
-17.26% core/compiler/compile-yield.go
53
70.77
-9.76% core/compiler/vmaccess.go
53
0.0
-100.0% ext/xml/ext.go
52
0.0
-16.77% ext/standard/ob.go
51
0.0
-100.0% ext/openssl/ext.go
50
10.42
-16.29% core/tokenizer/item.go
50
0.0
-29.76% ext/standard/urlenc.go
49
0.0
-100.0% ext/json/ext.go
48
18.81
-47.52% core/phpv/callable.go
47
0.0
-13.74% core/stream/filter.go
47
49.65
-33.33% core/tokenizer/string.go
47
0.0
-100.0% ext/hash/ext.go
47
0.0
-40.52% ext/reflection/type.go
46
0.0
-28.57% ext/gmp/sqrt.go
46
0.0
-55.42% ext/standard/head.go
44
0.0
-61.11% ext/gmp/bitwise.go
43
30.95
-51.19% core/compiler/run-constant.go
43
42.86
-47.25% core/vm/ops_arith.go
42
14.29
-75.0% core/phperr/user.go
41
29.69
-32.03% core/compiler/compile-unset.go
41
0.0
-4.35% core/zscanf.go
41
0.0
-7.14% ext/spl/doubly_linked_list.go
41
0.0
-7.96% ext/spl/file_info.go
39
0.0
-46.43% core/phperr/throw.go
39
0.0
-81.25% ext/bz2/var.go
38
19.44
-21.11% core/compiler/compile-if.go
38
9.84
-62.3% core/phpv/error.go
38
0.0
-79.17% ext/standard/time.go
37
74.8
-7.23% core/compiler/compile.go
37
29.33
-49.33% core/compiler/compile-instanceof.go
37
0.0
-7.79% ext/json/encode.go
37
0.0
-52.11% ext/standard/net.go
36
0.0
-94.74% core/class_alias.go
34
21.05
-29.82% core/compiler/compile-while.go
34
75.39
-6.64% core/vm/vmcompiler/emit_stmt.go
34
0.0
-50.0% ext/gmp/popcount.go
34
0.0
-40.96% ext/gmp/prime.go
34
0.0
-45.33% ext/pcre/callback_array.go
33
0.0
-100.0% core/gc-compat.go
33
52.42
-26.61% core/phpv/hashtable-iter.go
33
24.44
-24.44% core/tokenizer/number.go
33
0.0
-34.74% ext/gmp/bit.go
33
0.0
-37.93% ext/gmp/gcd.go
33
0.0
-32.67% ext/gmp/jacobi.go
33
0.0
-14.47% ext/hash/copy.go
33
0.0
-12.45% ext/spl/recursive_directory_iterator.go
32
34.15
-26.02% core/compiler/compile-global.go
32
0.0
-56.14% ext/pcre/filter.go
32
0.0
-100.0% ext/session/ext.go
32
0.0
-84.21% ext/standard/math_rand.go
32
0.0
-62.75% ext/standard/strings_cyr_convert.go
31
0.0
-88.57% core/assert_options.go
31
51.59
-19.75% core/phpv/zval-conv.go
31
0.0
-72.09% ext/openssl/digest.go
31
0.0
-68.89% ext/standard/env.go
31
0.89
-4.62% ext/standard/pack.go
30
74.1
-9.84% core/tokenizer/lexer.go
30
0.0
-8.2% ext/mysqli/result.go
30
0.0
-100.0% ext/sqlite3/ext.go
30
0.0
-62.5% ext/standard/process.go
29
14.04
-50.88% core/compiler/run-zval.go
28
0.0
-100.0% core/include.go
28
55.42
-33.73% core/phpctx/ext.go
28
25.0
-58.33% core/phpv/run.go
28
0.0
-62.22% ext/pcre/findall.go
28
0.0
-93.33% ext/standard/strings_quoted_printable.go
26
0.0
-20.97% ext/openssl/sign.go
26
0.0
-35.14% ext/pcre/error.go
25
0.0
-80.65% core/compiler/run-concat.go
25
10.87
-54.35% core/stream/filter_registry.go
25
0.0
-25.77% ext/standard/base64.go
25
0.0
-69.44% ext/standard/random.go
24
0.0
-63.16% core/common.go
24
40.0
-53.33% core/tokenizer/cast.go
24
22.58
-77.42% core/tokenizer/comment.go
24
0.0
-61.54% ext/date/strftime.go
24
0.0
-8.99% ext/mysqli/stmt.go
24
0.0
-57.14% ext/standard/uname_linux.go
23
0.0
-31.94% ext/gmp/output.go
23
0.0
-7.26% ext/sqlite3/sqlite3.go
22
0.0
-100.0% ext/ctype/ext.go
22
0.0
-57.89% ext/gmp/add.go
22
0.0
-28.21% ext/gmp/pow.go
21
0.0
-5.21% ext/spl/heap.go
20
45.65
-14.49% core/compiler/compile-return.go
20
28.57
-71.43% core/random/lcg.go
20
0.0
-22.47% ext/gmp/init.go
20
0.0
-16.13% ext/hash/init.go
20
0.0
-100.0% ext/standard/strings_crc32.go
19
50.94
-17.92% core/phpctx/global-array.go
19
0.0
-57.58% ext/pcre/grep.go
19
0.0
-20.0% ext/reflection/reflection_enum.go
19
0.0
-82.61% ext/standard/bin.go
18
0.0
-50.0% ext/pcre/quote.go
17
0.0
-85.0% core/phpctx/global-env.go
17
39.19
-22.97% core/phpctx/memory.go
17
7.58
-25.76% core/phpobj/method.go
17
0.0
-14.53% ext/reflection/generator.go
17
0.0
-73.91% ext/standard/uniqid.go
16
0.0
-84.21% core/get_called_class.go
16
0.0
-45.71% core/outputfunc.go
16
0.0
-27.12% ext/hash/pbkdf2.go
16
0.0
-5.37% ext/sqlite3/stmt.go
15
52.76
-11.81% core/vm/vmcompiler/emit_object.go
15
0.0
-14.02% ext/gmp/conv.go
15
0.0
-27.78% ext/hash/hkdf.go
15
0.0
-1.57% ext/spl/object_storage.go
14
44.37
-9.86% core/compiler/validate-break.go
14
53.33
-31.11% core/phpv/attr.go
14
0.0
-48.28% ext/hash/hmac.go
13
0.0
-30.23% core/phpctx/context-cfg.go
13
0.0
-12.15% core/stream/context.go
13
70.77
-20.0% core/tokenizer/php.go
13
0.0
-81.25% core/version.go
13
0.0
-100.0% ext/bz2/ext.go
13
0.0
-4.36% ext/spl/recursive_tree_iterator.go
13
0.0
-6.77% ext/sqlite3/result.go
13
0.0
-92.86% ext/standard/hex.go
12
43.33
-20.0% core/tokenizer/text.go
12
0.0
-100.0% ext/standard/php.go
11
25.53
-11.7% core/compiler/compile-dowhile.go
11
0.0
-73.33% ext/gmp/abs.go
11
0.0
-1.98% ext/gmp/class.go
11
0.0
-61.11% ext/gmp/fact.go
11
0.0
-42.31% ext/gmp/invert.go
11
0.0
-57.89% ext/gmp/mul.go
11
0.0
-73.33% ext/gmp/neg.go
11
0.0
-91.67% ext/gmp/sign.go
11
0.0
-40.74% ext/openssl/random.go
11
0.0
-84.62% ext/standard/scanf.go
10
0.0
-66.67% core/compiler/run.go
10
0.0
-66.67% ext/gmp/cmp.go
9
44.44
-33.33% core/vm/ops_compare.go
9
0.0
-30.0% ext/hash/algos.go
8
0.0
-1.5% core/phpctx/global-reqparse.go
8
69.23
-8.79% core/vm/vmcompiler/emit_call.go
8
0.0
-29.63% ext/hash/final.go
8
0.0
-100.0% ext/hash/info.go
8
0.0
-32.0% ext/hash/update.go
8
0.0
-6.2% ext/reflection/extension.go
8
0.0
-17.39% ext/reflection/reflection.go
7
0.0
-38.89% core/compiler/compile-txt.go
7
65.0
-35.0% core/tokenizer/operator.go
7
12.16
-9.46% core/vm/ops_object.go
7
0.0
-8.64% ext/pcre/expand.go
7
0.0
-1.46% ext/spl/fixed_array.go
6
71.43
-28.57% core/compiler/zclosure.go
6
0.0
-46.15% core/phpctx/context-buf.go
6
69.81
-11.32% core/phpctx/memory_check.go
6
0.0
-28.57% core/phperr/timeout.go
6
30.43
-26.09% core/phpv/head.go
6
0.0
-100.0% core/tokenizer/itemtype_string.go
6
81.25
-18.75% core/vm/ops_call.go
6
0.0
-5.08% ext/hash/class.go
6
45.45
-18.18% ext/standard/crypt.go
6
0.0
-100.0% ext/standard/deprecated.go
6
0.0
-100.0% ext/standard/lcg.go
5
0.0
-6.94% core/phpctx/open_basedir.go
5
53.85
-12.82% core/phpv/loc.go
5
0.0
-55.56% core/phpv/resource.go
5
69.77
-11.63% core/tokenizer/label.go
5
56.82
-5.68% core/vm/ops_foreach.go
5
70.27
-6.76% core/vm/ops_try.go
5
0.0
-100.0% ext/openssl/error.go
5
0.0
-1.3% ext/spl/priority_queue.go
4
71.35
-2.08% core/locale/locale.go
4
0.0
-18.18% core/phperr/break.go
4
50.0
-50.0% core/phpv/objects.go
4
0.0
-100.0% core/restore_error_handler.go
3
0.0
-15.79% core/phpv/exit.go
3
66.67
-33.33% core/random/rand.go
3
78.38
-8.11% core/vm/vmcompiler/register.go
2
55.56
-11.11% core/compiler/compile-throw.go
2
53.33
-13.33% core/phperr/return.go
2
5.88
-5.88% core/phpobj/stdclass.go
2
60.0
-20.0% core/phpv/ini.go
2
82.76
-3.45% core/vm/frame.go
2
59.74
-2.6% core/vm/vmcompiler/emit_array.go
2
90.27
-1.77% core/vm/vmcompiler/emit.go
2
78.26
-4.35% core/vm/vmcompiler/emit_try.go
Jobs
ID Job ID Ran Files Coverage
1 26081419167.1 19 May 2026 07:05AM UTC 398
12.31
GitHub Action Run
Source Files on build 26081419167
  • Tree
  • List 398
  • Changed 336
  • Source Changed 6
  • Coverage Changed 336
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26081419167
  • 9f63303d on github
  • Prev Build on master (#26067127795)
  • Next Build on master (#26082033737)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc