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'