Mercurial > vim
comparison src/testdir/test_vim9_builtin.vim @ 33924:ccdb948c7273 v9.0.2160
patch 9.0.2160: instanceof() should use varargs as second arg
Commit: https://github.com/vim/vim/commit/2025af165ec68d831f0f0f668a3ceac3f39142ef
Author: Ernie Rael <errael@raelity.com>
Date: Tue Dec 12 16:58:00 2023 +0100
patch 9.0.2160: instanceof() should use varargs as second arg
Problem: instanceof() should use varargs as second arg
Solution: Modify `instanceof()` to use varargs instead of list
Modify `instanceof()` to use varargs instead of list
Valid `instanceof()` arguments are `type`s. A `type` is not a value;
it cannot be added to a list.
This change is non-compatible with the current usage of instanceof;
but instanceof is relatively new and it's a trivial change.
fixes: #13421
closes: #13644
Signed-off-by: Ernie Rael <errael@raelity.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 12 Dec 2023 17:15:03 +0100 |
parents | cd7acb9bc4fd |
children | 3bba09502b8d |
comparison
equal
deleted
inserted
replaced
33923:b1e48fed6e55 | 33924:ccdb948c7273 |
---|---|
2314 vim9script | 2314 vim9script |
2315 class Foo | 2315 class Foo |
2316 endclass | 2316 endclass |
2317 instanceof(Foo.new(), 123) | 2317 instanceof(Foo.new(), 123) |
2318 END | 2318 END |
2319 v9.CheckScriptFailure(lines, 'E693: List or Class required for argument 2') | 2319 v9.CheckScriptFailure(lines, 'E693: Class or class typealias required for argument 2') |
2320 | 2320 |
2321 lines =<< trim END | 2321 lines =<< trim END |
2322 vim9script | 2322 vim9script |
2323 class Foo | 2323 class Foo |
2324 endclass | 2324 endclass |
2336 def Bar() | 2336 def Bar() |
2337 instanceof(Foo.new(), 123) | 2337 instanceof(Foo.new(), 123) |
2338 enddef | 2338 enddef |
2339 Bar() | 2339 Bar() |
2340 END | 2340 END |
2341 v9.CheckScriptFailure(lines, 'E1013: Argument 2: type mismatch, expected class<Unknown> but got number') | 2341 v9.CheckScriptFailure(lines, 'E693: Class or class typealias required for argument 2') |
2342 | 2342 |
2343 lines =<< trim END | 2343 lines =<< trim END |
2344 vim9script | 2344 vim9script |
2345 class Foo | 2345 class Foo |
2346 endclass | 2346 endclass |
2347 instanceof(Foo.new(), [{}]) | 2347 instanceof(Foo.new(), [{}]) |
2348 END | 2348 END |
2349 v9.CheckSourceFailure(lines, 'E614: Class required') | 2349 v9.CheckSourceFailure(lines, 'E693: Class or class typealias required for argument 2') |
2350 | 2350 |
2351 lines =<< trim END | 2351 lines =<< trim END |
2352 vim9script | 2352 vim9script |
2353 class Foo | 2353 class Foo |
2354 endclass | 2354 endclass |
2355 def Bar() | 2355 def Bar() |
2356 instanceof(Foo.new(), [{}]) | 2356 instanceof(Foo.new(), [{}]) |
2357 enddef | 2357 enddef |
2358 Bar() | 2358 Bar() |
2359 END | 2359 END |
2360 v9.CheckSourceFailure(lines, 'E614: Class required') | 2360 v9.CheckSourceFailure(lines, 'E693: Class or class typealias required for argument 2') |
2361 enddef | 2361 enddef |
2362 | 2362 |
2363 def Test_invert() | 2363 def Test_invert() |
2364 v9.CheckDefAndScriptFailure(['invert("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1']) | 2364 v9.CheckDefAndScriptFailure(['invert("x")'], ['E1013: Argument 1: type mismatch, expected number but got string', 'E1210: Number required for argument 1']) |
2365 enddef | 2365 enddef |