Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 38
Branch analysis from position: 38
2 jumps found. (Code = 77) Position 1 = 49, Position 2 = 59
Branch analysis from position: 49
2 jumps found. (Code = 78) Position 1 = 50, Position 2 = 59
Branch analysis from position: 50
1 jumps found. (Code = 42) Position 1 = 49
Branch analysis from position: 49
Branch analysis from position: 59
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 59
Found catch point at position: 32
Branch analysis from position: 32
2 jumps found. (Code = 107) Position 1 = 33, Position 2 = -2
Branch analysis from position: 33
2 jumps found. (Code = 77) Position 1 = 49, Position 2 = 59
Branch analysis from position: 49
Branch analysis from position: 59
filename: /in/HSIH6
function name: (null)
number of ops: 66
compiled vars: !0 = $contas, !1 = $validarMinimo10, !2 = $depositoValidado, !3 = $e, !4 = $resultadoFinal, !5 = $conta
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
174 0 E > ECHO '%3D%3D%3D+INICIANDO+SISTEMA+BANC%C3%81RIO+FUNCIONAL+%3D%3D%3D%0A%0A'
178 1 NEW $6 'Conta'
2 SEND_VAL_EX 'conta_A'
3 SEND_VAL_EX 0
4 DO_FCALL 0
5 INIT_ARRAY ~8 $6, 'conta_A'
179 6 NEW $9 'Conta'
7 SEND_VAL_EX 'conta_B'
8 SEND_VAL_EX 100
9 DO_FCALL 0
10 ADD_ARRAY_ELEMENT ~8 $9, 'conta_B'
177 11 ASSIGN !0, ~8
183 12 INIT_FCALL 'criarvalidadorvalorminimo'
13 SEND_VAL 10
14 DO_FCALL 0 $12
15 ASSIGN !1, $12
186 16 ECHO '---+Teste+de+Valida%C3%A7%C3%A3o+%28Currying%29+---%0A'
187 17 INIT_DYNAMIC_CALL !1
18 SEND_VAL_EX 50
19 DO_FCALL 0 $14
20 INIT_DYNAMIC_CALL $14
188 21 DECLARE_LAMBDA_FUNCTION ~15 [0]
22 BIND_LEXICAL ~15, !0
189 23 SEND_VAL_EX ~15
187 24 DO_FCALL 0 $16
25 ASSIGN !2, $16
190 26 ROPE_INIT 3 ~20 'Dep%C3%B3sito+de+R%24+50+validado%21+Novo+saldo+simulado+da+conta_A%3A+R%24+'
27 FETCH_OBJ_R ~18 !2, 'saldo'
28 ROPE_ADD 1 ~20 ~20, ~18
29 ROPE_END 2 ~19 ~20, '%0A%0A'
30 ECHO ~19
31 > JMP ->38
191 32 E > > CATCH last 'Exception'
192 33 > INIT_METHOD_CALL !3, 'getMessage'
34 DO_FCALL 0 $22
35 CONCAT ~23 'Erro%3A+', $22
36 CONCAT ~24 ~23, '%0A%0A'
37 ECHO ~24
196 38 > ECHO '---+Processando+Stream+com+DTO+Tipado+%28ResultadoProcessamento%29+---%0A'
197 39 INIT_FCALL 'processarcomidempotencia'
40 SEND_VAR !0
41 INIT_FCALL 'gerarstreamtransacoes'
42 DO_FCALL 0 $25
43 SEND_VAR $25
44 DO_FCALL 0 $26
45 ASSIGN !4, $26
200 46 ECHO '%0A---+SALDO+FINAL+DAS+CONTAS+---%0A'
201 47 FETCH_OBJ_R ~28 !4, 'contas'
48 > FE_RESET_R $29 ~28, ->59
49 > > FE_FETCH_R $29, !5, ->59
202 50 > ROPE_INIT 5 ~33 'Conta%3A+'
51 FETCH_OBJ_R ~30 !5, 'id'
52 ROPE_ADD 1 ~33 ~33, ~30
53 ROPE_ADD 2 ~33 ~33, '+%7C+Saldo+Final%3A+R%24+'
54 FETCH_OBJ_R ~31 !5, 'saldo'
55 ROPE_ADD 3 ~33 ~33, ~31
56 ROPE_END 4 ~32 ~33, '%0A'
57 ECHO ~32
201 58 > JMP ->49
59 > FE_FREE $29
205 60 ECHO '%0A---+HIST%C3%93RICO+DE+CHAVES+IDEMPOTENTES+REGISTRADAS+---%0A'
206 61 FETCH_OBJ_R ~36 !4, 'chavesProcessadas'
62 FRAMELESS_ICALL_2 implode ~37 '%2C+', ~36
63 CONCAT ~38 ~37, '%0A'
64 ECHO ~38
65 > RETURN 1
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: {closure:/in/HSIH6:188}
number of ops: 8
compiled vars: !0 = $contas
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
188 0 E > BIND_STATIC !0
1 INIT_FCALL 'depositar'
2 FETCH_DIM_R ~1 !0, 'conta_A'
3 SEND_VAL ~1
4 SEND_VAL 50
5 DO_FCALL 0 $2
6 > RETURN $2
189 7* > RETURN null
End of Dynamic Function 0
Function depositar:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: depositar
number of ops: 14
compiled vars: !0 = $conta, !1 = $valor
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
81 0 E > RECV !0
1 RECV !1
83 2 NEW $2 'Conta'
3 CHECK_FUNC_ARG
4 FETCH_OBJ_FUNC_ARG $3 !0, 'id'
5 SEND_FUNC_ARG $3
6 FETCH_OBJ_R ~4 !0, 'saldo'
7 ADD ~5 ~4, !1
8 SEND_VAL_EX ~5
9 DO_FCALL 0
10 VERIFY_RETURN_TYPE $2
11 > RETURN $2
84 12* VERIFY_RETURN_TYPE
13* > RETURN null
End of function depositar
Function sacar:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 13
Branch analysis from position: 5
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: sacar
number of ops: 25
compiled vars: !0 = $conta, !1 = $valor
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
86 0 E > RECV !0
1 RECV !1
88 2 FETCH_OBJ_R ~2 !0, 'saldo'
3 IS_SMALLER ~2, !1
4 > JMPZ ~3, ->13
89 5 > NEW $4 'InvalidArgumentException'
6 ROPE_INIT 3 ~7 'Saldo+insuficiente+na+conta+'
7 FETCH_OBJ_R ~5 !0, 'id'
8 ROPE_ADD 1 ~7 ~7, ~5
9 ROPE_END 2 ~6 ~7, '%21'
10 SEND_VAL_EX ~6
11 DO_FCALL 0
12 > THROW 0 $4
91 13 > NEW $10 'Conta'
14 CHECK_FUNC_ARG
15 FETCH_OBJ_FUNC_ARG $11 !0, 'id'
16 SEND_FUNC_ARG $11
17 FETCH_OBJ_R ~12 !0, 'saldo'
18 SUB ~13 ~12, !1
19 SEND_VAL_EX ~13
20 DO_FCALL 0
21 VERIFY_RETURN_TYPE $10
22 > RETURN $10
92 23* VERIFY_RETURN_TYPE
24* > RETURN null
End of function sacar
Function aplicartransacao:
Finding entry points
Branch analysis from position: 0
3 jumps found. (Code = 195) Position 1 = 4, Position 2 = 11, Position 3 = 18
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 11
1 jumps found. (Code = 42) Position 1 = 27
Branch analysis from position: 27
Branch analysis from position: 18
1 jumps found. (Code = 108) Position 1 = -2
filename: /in/HSIH6
function name: aplicarTransacao
number of ops: 32
compiled vars: !0 = $conta, !1 = $tx
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
99 0 E > RECV !0
1 RECV !1
101 2 FETCH_OBJ_R ~2 !1, 'tipo'
3 > MATCH ~2, [ 'DEPOSITO':->4, 'SAQUE':->11, ], ->18
102 4 > INIT_FCALL 'depositar'
5 SEND_VAR !0
6 FETCH_OBJ_R ~4 !1, 'valor'
7 SEND_VAL ~4
8 DO_FCALL 0 $5
9 QM_ASSIGN ~6 $5
10 > JMP ->27
103 11 > INIT_FCALL 'sacar'
12 SEND_VAR !0
13 FETCH_OBJ_R ~7 !1, 'valor'
14 SEND_VAL ~7
15 DO_FCALL 0 $8
16 QM_ASSIGN ~6 $8
17 > JMP ->27
104 18 > NEW $9 'InvalidArgumentException'
19 NOP
20 FETCH_OBJ_R ~10 !1, 'tipo'
21 FAST_CONCAT ~11 'Tipo+de+transa%C3%A7%C3%A3o+desconhecido%3A+', ~10
22 SEND_VAL_EX ~11
23 DO_FCALL 0
24 > THROW 1 $9
25* QM_ASSIGN ~6 <true>
26* JMP ->27
27 > FREE ~2
28 VERIFY_RETURN_TYPE ~6
29 > RETURN ~6
106 30* VERIFY_RETURN_TYPE
31* > RETURN null
End of function aplicartransacao
Function criarvalidadorvalorminimo:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: criarValidadorValorMinimo
number of ops: 8
compiled vars: !0 = $valorMinimo, !1 = $operacao
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
113 0 E > RECV !0
115 1 DECLARE_LAMBDA_FUNCTION ~2 [0]
2 BIND_LEXICAL ~2, !0
3 BIND_LEXICAL ~2, !1
118 4 VERIFY_RETURN_TYPE ~2
5 > RETURN ~2
119 6* VERIFY_RETURN_TYPE
7* > RETURN null
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: {closure:criarValidadorValorMinimo():115}
number of ops: 8
compiled vars: !0 = $valor, !1 = $valorMinimo, !2 = $operacao
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
115 0 E > RECV !0
1 BIND_STATIC !1
2 BIND_STATIC !2
3 DECLARE_LAMBDA_FUNCTION ~3 [0]
4 BIND_LEXICAL ~3, !0
5 BIND_LEXICAL ~3, !1
118 6 > RETURN ~3
7* > RETURN null
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 5, Position 2 = 13
Branch analysis from position: 5
1 jumps found. (Code = 108) Position 1 = -2
Branch analysis from position: 13
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: {closure:{closure:criarValidadorValorMinimo():115}:115}
number of ops: 18
compiled vars: !0 = $operacao, !1 = $valor, !2 = $valorMinimo
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
115 0 E > RECV !0
1 BIND_STATIC !1
2 BIND_STATIC !2
116 3 IS_SMALLER !1, !2
4 > JMPZ ~3, ->13
117 5 > NEW $4 'InvalidArgumentException'
6 NOP
7 FAST_CONCAT ~5 'Valor+m%C3%ADnimo+deve+ser+R%24+', !2
8 SEND_VAL_EX ~5
9 DO_FCALL 0
10 > THROW 1 $4
11* QM_ASSIGN ~7 <true>
12* JMP ->16
118 13 > INIT_DYNAMIC_CALL !0
14 DO_FCALL 0 $8
15 QM_ASSIGN ~7 $8
16 > RETURN ~7
17* > RETURN null
End of Dynamic Function 0
End of Dynamic Function 0
End of function criarvalidadorvalorminimo
Function processarcomidempotencia:
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 4, Position 2 = 6
Branch analysis from position: 4
1 jumps found. (Code = 42) Position 1 = 10
Branch analysis from position: 10
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 6
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: processarComIdempotencia
number of ops: 27
compiled vars: !0 = $contasIniciais, !1 = $transacoes, !2 = $listaTransacoes, !3 = $estadoInicial
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
126 0 E > RECV !0
1 RECV !1
128 2 TYPE_CHECK 128 !1
3 > JMPZ ~4, ->6
4 > QM_ASSIGN ~5 !1
5 > JMP ->10
6 > INIT_FCALL 'iterator_to_array'
7 SEND_VAR !1
8 DO_ICALL $6
9 QM_ASSIGN ~5 $6
10 > ASSIGN !2, ~5
130 11 NEW $8 'ResultadoProcessamento'
131 12 SEND_VAR_EX !0, 'contas'
132 13 SEND_VAL_EX <array>, 'chavesProcessadas'
14 CHECK_UNDEF_ARGS
130 15 DO_FCALL 1
16 ASSIGN !3, $8
135 17 INIT_FCALL 'array_reduce'
136 18 SEND_VAR !2
137 19 DECLARE_LAMBDA_FUNCTION ~11 [0]
151 20 SEND_VAL ~11
152 21 SEND_VAR !3
135 22 DO_ICALL $12
152 23 VERIFY_RETURN_TYPE $12
24 > RETURN $12
154 25* VERIFY_RETURN_TYPE
26* > RETURN null
Dynamic Functions:
Dynamic Function 0
Finding entry points
Branch analysis from position: 0
2 jumps found. (Code = 43) Position 1 = 8, Position 2 = 15
Branch analysis from position: 8
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 15
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/HSIH6
function name: {closure:processarComIdempotencia():137}
number of ops: 56
compiled vars: !0 = $estado, !1 = $tx, !2 = $contaAtual, !3 = $novaConta
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
137 0 E > RECV !0
1 RECV !1
139 2 INIT_METHOD_CALL !0, 'possuiChave'
3 CHECK_FUNC_ARG
4 FETCH_OBJ_FUNC_ARG $4 !1, 'idempotencyKey'
5 SEND_FUNC_ARG $4
6 DO_FCALL 0 $5
7 > JMPZ $5, ->15
140 8 > ROPE_INIT 3 ~8 '%E2%9A%A0%EF%B8%8F+%5BIDEMPOT%C3%8ANCIA%5D+Transa%C3%A7%C3%A3o+'
9 FETCH_OBJ_R ~6 !1, 'idempotencyKey'
10 ROPE_ADD 1 ~8 ~8, ~6
11 ROPE_END 2 ~7 ~8, '+ignorada+%28j%C3%A1+processada%29.%0A'
12 ECHO ~7
141 13 VERIFY_RETURN_TYPE !0
14 > RETURN !0
144 15 > FETCH_OBJ_R ~11 !1, 'contaId'
16 FETCH_OBJ_IS ~10 !0, 'contas'
17 FETCH_DIM_IS ~12 ~10, ~11
18 COALESCE ~13 ~12
19 NEW $14 'Conta'
20 CHECK_FUNC_ARG
21 FETCH_OBJ_FUNC_ARG $15 !1, 'contaId'
22 SEND_FUNC_ARG $15
23 SEND_VAL_EX 0
24 DO_FCALL 0
25 QM_ASSIGN ~13 $14
26 ASSIGN !2, ~13
145 27 INIT_FCALL 'aplicartransacao'
28 SEND_VAR !2
29 SEND_VAR !1
30 DO_FCALL 0 $18
31 ASSIGN !3, $18
147 32 ROPE_INIT 9 ~25 '%E2%9C%85+Transa%C3%A7%C3%A3o+'
33 FETCH_OBJ_R ~20 !1, 'tipo'
34 ROPE_ADD 1 ~25 ~25, ~20
35 ROPE_ADD 2 ~25 ~25, '+de+R%24+'
36 FETCH_OBJ_R ~21 !1, 'valor'
37 ROPE_ADD 3 ~25 ~25, ~21
38 ROPE_ADD 4 ~25 ~25, '+na+conta+'
39 FETCH_OBJ_R ~22 !1, 'contaId'
40 ROPE_ADD 5 ~25 ~25, ~22
41 ROPE_ADD 6 ~25 ~25, '+conclu%C3%ADda.+Saldo+atual%3A+R%24+'
42 FETCH_OBJ_R ~23 !3, 'saldo'
43 ROPE_ADD 7 ~25 ~25, ~23
44 ROPE_END 8 ~24 ~25, '%0A'
45 ECHO ~24
150 46 INIT_METHOD_CALL !0, 'comTransacao'
47 SEND_VAR_EX !3
48 CHECK_FUNC_ARG
49 FETCH_OBJ_FUNC_ARG $30 !1, 'idempotencyKey'
50 SEND_FUNC_ARG $30
51 DO_FCALL 0 $31
52 VERIFY_RETURN_TYPE $31
53 > RETURN $31
151 54* VERIFY_RETURN_TYPE
55* > RETURN null
End of Dynamic Function 0
End of function processarcomidempotencia
Function gerarstreamtransacoes:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 161) Position 1 = -2
filename: /in/HSIH6
function name: gerarStreamTransacoes
number of ops: 37
compiled vars: none
line #* E I O op fetch ext return operands
-----------------------------------------------------------------------------------------
161 0 E > GENERATOR_CREATE
163 1 NEW $0 'Transacao'
2 SEND_VAL_EX 'tx_key_001'
3 SEND_VAL_EX 'DEPOSITO'
4 SEND_VAL_EX 500
5 SEND_VAL_EX 'conta_A'
6 DO_FCALL 0
7 YIELD $0
164 8 NEW $3 'Transacao'
9 SEND_VAL_EX 'tx_key_002'
10 SEND_VAL_EX 'SAQUE'
11 SEND_VAL_EX 150
12 SEND_VAL_EX 'conta_A'
13 DO_FCALL 0
14 YIELD $3
165 15 NEW $6 'Transacao'
16 SEND_VAL_EX 'tx_key_001'
17 SEND_VAL_EX 'DEPOSITO'
18 SEND_VAL_EX 500
19 SEND_VAL_EX 'conta_A'
20 DO_FCALL 0
21 YIELD $6
166 22 NEW $9 'Transacao'
23 SEND_VAL_EX 'tx_key_003'
24 SEND_VAL_EX 'DEPOSITO'
25 SEND_VAL_EX 1000
26 SEND_VAL_EX 'conta_B'
27Generated using Vulcan Logic Dumper, using php 8.5.0