Mercurial > vim
comparison src/testdir/test_let.vim @ 28633:7a39c20a42fa v8.2.4840
patch 8.2.4840: heredoc expression evaluated even when skipping
Commit: https://github.com/vim/vim/commit/05c7f5d3d03440da6f69604f8c06c4e3d90d2a26
Author: Bram Moolenaar <Bram@vim.org>
Date: Thu Apr 28 16:51:41 2022 +0100
patch 8.2.4840: heredoc expression evaluated even when skipping
Problem: Heredoc expression evaluated even when skipping.
Solution: Don't evaluate when "skip" is set. (closes https://github.com/vim/vim/issues/10306)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Thu, 28 Apr 2022 18:00:04 +0200 |
parents | 769599ee9f06 |
children | 723c7d940cba |
comparison
equal
deleted
inserted
replaced
28632:53b07741a47c | 28633:7a39c20a42fa |
---|---|
507 let b = `=min([10, 6])` + `=max([4, 6])` | 507 let b = `=min([10, 6])` + `=max([4, 6])` |
508 `=str` | 508 `=str` |
509 let c = "abc`=str`d" | 509 let c = "abc`=str`d" |
510 END | 510 END |
511 call assert_equal(['let a = 15', 'let b = 6 + 6', '', 'let c = "abcd"'], code) | 511 call assert_equal(['let a = 15', 'let b = 6 + 6', '', 'let c = "abcd"'], code) |
512 | |
512 let $TESTVAR = "Hello" | 513 let $TESTVAR = "Hello" |
513 let code =<< eval trim END | 514 let code =<< eval trim END |
514 let s = "`=$TESTVAR`" | 515 let s = "`=$TESTVAR`" |
515 END | 516 END |
516 call assert_equal(['let s = "Hello"'], code) | 517 call assert_equal(['let s = "Hello"'], code) |
518 | |
517 let code =<< eval END | 519 let code =<< eval END |
518 let s = "`=$TESTVAR`" | 520 let s = "`=$TESTVAR`" |
519 END | 521 END |
520 call assert_equal([' let s = "Hello"'], code) | 522 call assert_equal([' let s = "Hello"'], code) |
523 | |
521 let a = 10 | 524 let a = 10 |
522 let data =<< eval END | 525 let data =<< eval END |
523 `=a` | 526 `=a` |
524 END | 527 END |
525 call assert_equal(['10'], data) | 528 call assert_equal(['10'], data) |
529 | |
526 let x = 'X' | 530 let x = 'X' |
527 let code =<< eval trim END | 531 let code =<< eval trim END |
528 let a = `abc` | 532 let a = `abc` |
529 let b = `=x` | 533 let b = `=x` |
530 let c = ` | 534 let c = ` |
531 END | 535 END |
532 call assert_equal(['let a = `abc`', 'let b = X', 'let c = `'], code) | 536 call assert_equal(['let a = `abc`', 'let b = X', 'let c = `'], code) |
537 | |
533 let code = 'xxx' | 538 let code = 'xxx' |
534 let code =<< eval trim END | 539 let code =<< eval trim END |
535 let n = `=5 + | 540 let n = `=5 + |
536 6` | 541 6` |
537 END | 542 END |
538 call assert_equal('xxx', code) | 543 call assert_equal('xxx', code) |
544 | |
539 let code =<< eval trim END | 545 let code =<< eval trim END |
540 let n = `=min([1, 2]` + `=max([3, 4])` | 546 let n = `=min([1, 2]` + `=max([3, 4])` |
541 END | 547 END |
542 call assert_equal('xxx', code) | 548 call assert_equal('xxx', code) |
543 | 549 |
559 let text =<< eval trim END | 565 let text =<< eval trim END |
560 let b = `=` | 566 let b = `=` |
561 END | 567 END |
562 LINES | 568 LINES |
563 call v9.CheckScriptFailure(lines, 'E15:') | 569 call v9.CheckScriptFailure(lines, 'E15:') |
570 | |
571 " skipped heredoc | |
572 if 0 | |
573 let msg =<< trim eval END | |
574 n is: `=n` | |
575 END | |
576 endif | |
564 | 577 |
565 " Test for sourcing a script containing a heredoc with invalid expression. | 578 " Test for sourcing a script containing a heredoc with invalid expression. |
566 " Variable assignment should fail, if expression evaluation fails | 579 " Variable assignment should fail, if expression evaluation fails |
567 new | 580 new |
568 let g:Xvar = 'test' | 581 let g:Xvar = 'test' |