neo-go/pkg/compiler
Evgenii Stratonikov b461a6ab63 compiler: do not short-circuit in complex conditions
Current implementation of short-circuting is just plain wrong
as it uses `last` or `before-last` labels which meaning depend
on context. It doesn't even handle simple assignements like
`a := x == 1 && y == 2`.

This commit makes all jumps in such conditions local
and adds tests.

Closes #699, #700.
2020-02-28 17:44:46 +03:00
..
testdata Merge pull request #568 from nspcc-dev/feature/compiler_clean_and_tests 2020-01-14 18:44:07 +03:00
analysis.go compiler: process empty []byte{} literals as ByteArrays 2020-02-12 12:16:15 +03:00
assign_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
binary_expr_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
byte_conversion_test.go compiler: allow to convert string constants to []byte 2020-01-27 15:29:52 +03:00
codegen.go compiler: do not short-circuit in complex conditions 2020-02-28 17:44:46 +03:00
codegen_test.go compiler: add test for codegen 2019-12-19 15:23:14 +03:00
compiler.go compiler: remove not used functions 2019-12-20 13:05:47 +03:00
compiler_test.go compiler: add test for compile and save 2020-01-14 17:33:04 +03:00
constant_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
for_test.go compiler: do not short-circuit in complex conditions 2020-02-28 17:44:46 +03:00
func_scope.go compiler: use uint16 for label numbers 2020-02-21 17:45:45 +03:00
function_call_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
if_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
import_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
interop_test.go compiler: reverse args in AppCall 2020-02-10 10:53:58 +03:00
limit_test.go compiler: emit integers correctly 2020-01-28 16:39:19 +03:00
map_test.go compiler: allow usage of string literals in index expressions 2020-01-23 17:28:35 +03:00
numeric_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
panic_test.go compiler: support panic in source 2020-01-29 12:28:38 +03:00
return_test.go compiler: fix a bug with assignment to underscore 2020-01-29 17:07:55 +03:00
slice_test.go compiler: support sub-slicing 2020-02-12 12:16:15 +03:00
struct_test.go compiler: support initializing struct fields from a variable 2020-02-12 12:15:54 +03:00
switch_test.go compiler: support break in switch statements 2020-02-21 12:03:37 +03:00
syscall.go compiler: move it up from vm 2019-12-03 18:23:46 +03:00
syscall_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
type_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
util_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00
verify_test.go compiler: implement ECDSA signature verification 2020-01-23 10:56:15 +03:00
vm_test.go compiler: move tests from vm/tests 2019-12-23 17:05:34 +03:00