mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
53c64abdeb
* Move compiler/ under vlib/compiler/ . * Add a minimal compiler/main.v driver program. * Cleanup compiler/main.v . * Make most compiler tests pass again. * Apply the fix by @joe-conigliaro , so that the rest of the compiler tests are fixed too. * Thanks to @avitkauskas, now the vlib/vcompiler/tests/str_gen_test.v test does not need to be special cased anymore. * Reapply @joe-conigliaro fix for vgen.
30 lines
977 B
V
30 lines
977 B
V
|
|
fn test_excape_dollar_in_string() {
|
|
i := 42
|
|
|
|
assert '($i)' == '(42)'
|
|
assert '(\$i)'.contains('i') && !'(\$i)'.contains('42')
|
|
assert !'(\\$i)'.contains('i') && '(\\$i)'.contains('42') && '(\\$i)'.contains('\\')
|
|
assert '(\\\$i)'.contains('i') && !'(\\\$i)'.contains('42') && '(\\$i)'.contains('\\')
|
|
assert !'(\\\\$i)'.contains('i') && '(\\\\$i)'.contains('42') && '(\\\\$i)'.contains('\\\\')
|
|
|
|
assert '(${i})' == '(42)'
|
|
assert '(\${i})'.contains('i') && !'(\${i})'.contains('42')
|
|
assert !'(\\${i})'.contains('i') && '(\\${i})'.contains('42') && '(\\${i})'.contains('\\')
|
|
assert '(\\\${i})'.contains('i') && !'(\\\${i})'.contains('42') && '(\\${i})'.contains('\\')
|
|
assert !'(\\\\${i})'.contains('i') && '(\\\\${i})'.contains('42') && '(\\\\${i})'.contains('\\\\')
|
|
assert i==42
|
|
}
|
|
|
|
fn test_implicit_str() {
|
|
i := 42
|
|
assert 'int $i' == 'int 42'
|
|
assert '$i' == '42'
|
|
|
|
check := '$i' == '42'
|
|
assert check
|
|
|
|
text := '$i' + '42'
|
|
assert text == '4242'
|
|
}
|