summaryrefslogtreecommitdiffstats
path: root/src/testdir/test_vim9_class.vim
diff options
context:
space:
mode:
authorDoug Kearns <dougkearns@gmail.com>2023-12-14 20:26:26 +0100
committerChristian Brabandt <cb@256bit.org>2023-12-14 20:26:26 +0100
commit74da0ee0a24799a312a3a8a65858237185ef7a23 (patch)
treec615199ec9cbbbb5bdea225b1ab9da698f778701 /src/testdir/test_vim9_class.vim
parent549f8c0b4ebe47168c98f46c8b62b1eb33da7c9c (diff)
patch 9.0.2167: Vim9: not consistently using :var for declarationsv9.0.2167
Problem: Vim9-script object/class variable declarations use syntax that is inconsistent with the rest of the language. Solution: Use :var to declare object and class variables. closes: #13670 Signed-off-by: Doug Kearns <dougkearns@gmail.com> Signed-off-by: Christian Brabandt <cb@256bit.org>
Diffstat (limited to 'src/testdir/test_vim9_class.vim')
-rw-r--r--src/testdir/test_vim9_class.vim1104
1 files changed, 614 insertions, 490 deletions
diff --git a/src/testdir/test_vim9_class.vim b/src/testdir/test_vim9_class.vim
index 6f9723dfae..bb806cce91 100644
--- a/src/testdir/test_vim9_class.vim
+++ b/src/testdir/test_vim9_class.vim
@@ -67,6 +67,33 @@ def Test_class_basic()
END
v9.CheckSourceFailure(lines, "E488: Trailing characters: | echo 'done'", 3)
+ # Use old "this." prefixed member variable declaration syntax (without intialization)
+ lines =<< trim END
+ vim9script
+ class Something
+ this.count: number
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.count: number', 3)
+
+ # Use old "this." prefixed member variable declaration syntax (with intialization)
+ lines =<< trim END
+ vim9script
+ class Something
+ this.count: number = 42
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.count: number = 42', 3)
+
+ # Use old "this." prefixed member variable declaration syntax (type inferred)
+ lines =<< trim END
+ vim9script
+ class Something
+ this.count = 42
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.count = 42', 3)
+
# Use "this" without any member variable name
lines =<< trim END
vim9script
@@ -74,7 +101,7 @@ def Test_class_basic()
this
endclass
END
- v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this', 3)
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this', 3)
# Use "this." without any member variable name
lines =<< trim END
@@ -83,7 +110,7 @@ def Test_class_basic()
this.
endclass
END
- v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this.', 3)
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this.', 3)
# Space between "this" and ".<variable>"
lines =<< trim END
@@ -92,7 +119,7 @@ def Test_class_basic()
this .count
endclass
END
- v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this .count', 3)
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this .count', 3)
# Space between "this." and the member variable name
lines =<< trim END
@@ -101,26 +128,44 @@ def Test_class_basic()
this. count
endclass
END
- v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: this. count', 3)
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: this. count', 3)
# Use "that" instead of "this"
lines =<< trim END
vim9script
class Something
- this.count: number
+ var count: number
that.count
endclass
END
v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: that.count', 4)
- # Member variable without a type or initialization
+ # Use "variable" instead of "var" for member variable declaration (without initialization)
lines =<< trim END
vim9script
class Something
- this.count
+ variable count: number
endclass
END
- v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3)
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: variable count: number', 3)
+
+ # Use "variable" instead of "var" for member variable declaration (with initialization)
+ lines =<< trim END
+ vim9script
+ class Something
+ variable count: number = 42
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: variable count: number = 42', 3)
+
+ # Use "variable" instead of "var" for member variable declaration (type inferred)
+ lines =<< trim END
+ vim9script
+ class Something
+ variable count = 42
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1318: Not a valid command in a class: variable count = 42', 3)
# Use a non-existing member variable in new()
lines =<< trim END
@@ -138,7 +183,7 @@ def Test_class_basic()
lines =<< trim END
vim9script
class Something
- this.count : number
+ var count : number
endclass
END
v9.CheckSourceFailure(lines, 'E1059: No white space allowed before colon: count : number', 3)
@@ -147,11 +192,38 @@ def Test_class_basic()
lines =<< trim END
vim9script
class Something
- this.count:number
+ var count:number
endclass
END
v9.CheckSourceFailure(lines, "E1069: White space required after ':'", 3)
+ # Missing ":var" in a "var" member variable declaration (without initialization)
+ lines =<< trim END
+ vim9script
+ class Something
+ var: number
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: var: number', 3)
+
+ # Missing ":var" in a "var" member variable declaration (with initialization)
+ lines =<< trim END
+ vim9script
+ class Something
+ var: number = 42
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: var: number = 42', 3)
+
+ # Missing ":var" in a "var" member variable declaration (type inferred)
+ lines =<< trim END
+ vim9script
+ class Something
+ var = 42
+ endclass
+ END
+ v9.CheckSourceFailure(lines, 'E1317: Invalid object variable declaration: var = 42', 3)
+
# Test for unsupported comment specifier
lines =<< trim END
vim9script
@@ -227,8 +299,8 @@ def Test_class_basic()
vim9script
class TextPosition
- this.lnum: number
- this.col: number
+ var lnum: number
+ var col: number
# make a nicely formatted string
def ToString(): string
@@ -293,7 +365,7 @@ def Test_class_basic()
lines =<< trim END
vim9script
class A
- this.y = {
+ var y = {
X: 1
}
endclass
@@ -312,7 +384,7 @@ def Test_class_def_method()
enddef
endclass
END
- v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "this" or "static"', 3)
+ v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "var" or "static"', 3)
# Using the "public" keyword when defining a class method
lines =<< trim END
@@ -332,7 +404,7 @@ def Test_class_def_method()
enddef
endclass
END
- v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "this" or "static"', 3)
+ v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "var" or "static"', 3)
# Using the "public" keyword when defining a class protected method
lines =<< trim END
@@ -415,7 +487,7 @@ def Test_class_interface_wrong_end()
var lines =<< trim END
vim9script
abstract class SomeName
- this.member = 'text'
+ var member = 'text'
endinterface
END
v9.CheckSourceFailure(lines, 'E476: Invalid command: endinterface, expected endclass', 4)
@@ -423,7 +495,7 @@ def Test_class_interface_wrong_end()
lines =<< trim END
vim9script
export interface AnotherName
- this.member: string
+ var member: string
endclass
END
v9.CheckSourceFailure(lines, 'E476: Invalid command: endclass, expected endinterface', 4)
@@ -435,7 +507,7 @@ def Test_object_not_set()
vim9script
class State
- this.value = 'xyz'
+ var value = 'xyz'
endclass
var state: State
@@ -449,7 +521,7 @@ def Test_object_not_set()
vim9script
class Class
- this.id: string
+ var id: string
def Method1()
echo 'Method1' .. this.id
enddef
@@ -469,11 +541,11 @@ def Test_object_not_set()
vim9script
class Background
- this.background = 'dark'
+ var background = 'dark'
endclass
class Colorscheme
- this._bg: Background
+ var _bg: Background
def GetBackground(): string
return this._bg.background
@@ -490,7 +562,7 @@ def Test_object_not_set()
vim9script
class Class
- this.id: string
+ var id: string
def Method1()
echo 'Method1' .. this.id
enddef
@@ -552,8 +624,8 @@ def Test_class_member_initializer()
vim9script
class TextPosition
- this.lnum: number = 1
- this.col: number = 1
+ var lnum: number = 1
+ var col: number = 1
# constructor with only the line number
def new(lnum: number)
@@ -588,11 +660,11 @@ def Test_member_any_used_as_object()
vim9script
class Inner
- this.value: number = 0
+ var value: number = 0
endclass
class Outer
- this.inner: any
+ var inner: any
endclass
def F(outer: Outer)
@@ -611,11 +683,11 @@ def Test_member_any_used_as_object()
vim9script
class Inner
- this._value: string = ''
+ var _value: string = ''
endclass
class Outer
- this.inner: any
+ var inner: any
endclass
def F(outer: Outer)
@@ -633,11 +705,11 @@ def Test_member_any_used_as_object()
vim9script
class Inner
- this.value: string = ''
+ var value: string = ''
endclass
class Outer
- this.inner: any
+ var inner: any
endclass
def F(outer: Outer)
@@ -657,11 +729,11 @@ def Test_assignment_nested_type()
vim9script
class Inner
- public this.value: number = 0
+ public var value: number = 0
endclass
class Outer
- this.inner: Inner
+ var inner: Inner
endclass
def F(outer: Outer)
@@ -689,11 +761,11 @@ def Test_assignment_nested_type()
vim9script
class Inner
- this.value: number = 0
+ var value: number = 0
endclass
class Outer
- this.inner: Inner
+ var inner: Inner
endclass
def F(outer: Outer)
@@ -716,11 +788,11 @@ def Test_assignment_nested_type()
vim9script
class Inner
- this.value: number = 0
+ var value: number = 0
endclass
class Outer
- this.inner: Inner
+ var inner: Inner
endclass
def F(outer: Outer)
@@ -741,7 +813,7 @@ def Test_assignment_with_operator()
vim9script
class Foo
- public this.x: number
+ public var x: number
def Add(n: number)
this.x += n
@@ -788,7 +860,7 @@ def Test_expr_after_using_object()
vim9script
class Something
- this.label: string = ''
+ var label: string = ''
endclass
def Foo(): Something
@@ -807,8 +879,8 @@ def Test_class_default_new()
vim9script
class TextPosition
- this.lnum: number = 1
- this.col: number = 1
+ var lnum: number = 1
+ var col: number = 1
endclass
var pos = TextPosition.new()
@@ -832,9 +904,9 @@ def Test_class_default_new()
lines =<< trim END
vim9script
class Person
- this.name: string
- this.age: number = 42
- this.education: string = "unknown"
+ var name: string
+ var age: number = 42
+ var education: string = "unknown"
def new(this.name, this.age = v:none, this.education = v:none)
enddef
@@ -855,9 +927,9 @@ def Test_class_default_new()
lines =<< trim END
vim9script
class Person
- this.name: string
- this.age: number = 42
- this.education: string = "unknown"
+ var name: string
+ var age: number = 42
+ var education: string = "unknown"
def new(this.name, this.age = v:none, this.education = v:none)
enddef
@@ -872,7 +944,7 @@ def Test_class_default_new()
lines =<< trim END
vim9script
class A
- this.val: string
+ var val: string
def new(this.val = 'a')
enddef
endclass
@@ -885,8 +957,8 @@ def Test_class_new_with_object_member()
vim9script
class C
- this.str: string
- this.num: number
+ var str: string
+ var num: number
def new(this.str, this.num)
enddef
def newVals(this.str, this.num)
@@ -915,8 +987,8 @@ def Test_class_new_with_object_member()
vim9script
class C
- this.str: string
- this.num: number
+ var str: string
+ var num: number
def new(this.str, this.num)
enddef
endclass
@@ -937,8 +1009,8 @@ def Test_class_new_with_object_member()
vim9script
class C
- this.str: string
- this.num: number
+ var str: string
+ var num: number
def newVals(this.str, this.num)
enddef
endclass
@@ -959,7 +1031,7 @@ def Test_class_new_with_object_member()
vim9script
class C
- this.str: string
+ var str: string
def new(str: any)
enddef
endclass
@@ -980,7 +1052,7 @@ def Test_class_new_with_object_member()
lines =<< trim END
vim9script
class A
- this.val = 10
+ var val = 10
static def Foo(this.val: number)
enddef
endclass
@@ -991,7 +1063,7 @@ def Test_class_new_with_object_member()
lines =<< trim END
vim9script
class A
- this.val = 10
+ var val = 10
def Foo(this.val: number)
enddef
endclass
@@ -1003,9 +1075,9 @@ def Test_class_object_member_inits()
var lines =<< trim END
vim9script
class TextPosition
- this.lnum: number
- this.col = 1
- this.addcol: number = 2
+ var lnum: number
+ var col = 1
+ var addcol: number = 2
endclass
var pos = TextPosition.new()
@@ -1018,8 +1090,8 @@ def Test_class_object_member_inits()
lines =<< trim END
vim9script
class TextPosition
- this.lnum
- this.col = 1
+ var lnum
+ var col = 1
endclass
END
v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3)
@@ -1036,9 +1108,9 @@ def Test_class_object_member_inits()
enddef
class A
- this.str1 = Init()
- this.str2: string = Init()
- this.col = 1
+ var str1 = Init()
+ var str2: string = Init()
+ var col = 1
endclass
assert_equal(init_count, 0)
@@ -1051,7 +1123,7 @@ def Test_class_object_member_inits()
lines =<< trim END
vim9script
class A
- this.value = init_val
+ var value = init_val
endclass
var a = A.new()
END
@@ -1061,7 +1133,7 @@ def Test_class_object_member_inits()
lines =<< trim END
vim9script
class A
- this.value: void
+ var value: void
endclass
END
v9.CheckSourceFailure(lines, 'E1330: Invalid type for object variable: void', 3)
@@ -1072,9 +1144,9 @@ def Test_instance_variable_access()
var lines =<< trim END
vim9script
class Triple
- this._one = 1
- this.two = 2
- public this.three = 3
+ var _one = 1
+ var two = 2
+ public var three = 3
def GetOne(): number
return this._one
@@ -1100,17 +1172,17 @@ def Test_instance_variable_access()
lines =<< trim END
vim9script
class A
- public this._val = 10
+ public var _val = 10
endclass
END
- v9.CheckSourceFailure(lines, 'E1332: Public variable name cannot start with underscore: public this._val = 10', 3)
+ v9.CheckSourceFailure(lines, 'E1332: Public variable name cannot start with underscore: public var _val = 10', 3)
lines =<< trim END
vim9script
class MyCar
- this.make: string
- this.age = 5
+ var make: string
+ var age = 5
def new(make_arg: string)
this.make = make_arg
@@ -1145,7 +1217,7 @@ def Test_instance_variable_access()
vim9script
class MyCar
- this.make: string
+ var make: string
def new(make_arg: string)
this.make = make_arg
@@ -1161,7 +1233,7 @@ def Test_instance_variable_access()
vim9script
class Foo
- this.x: list<number> = []
+ var x: list<number> = []
def Add(n: number): any
this.x->add(n)
@@ -1187,25 +1259,25 @@ def Test_instance_variable_access()
lines =<< trim END
vim9script
class Something
- pub this.val = 1
+ pub var val = 1
endclass
END
- v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: pub this.val = 1', 3)
+ v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: pub var val = 1', 3)
- # Test for "public" keyword must be followed by "this" or "static".
+ # Test for "public" keyword must be followed by "var" or "static".
lines =<< trim END
vim9script
class Something
public val = 1
endclass
END
- v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "this" or "static"', 3)
+ v9.CheckSourceFailure(lines, 'E1331: Public must be followed by "var" or "static"', 3)
# Modify a instance variable using the class name in the script context
lines =<< trim END
vim9script
class A
- public this.val = 1
+ public var val = 1
endclass
A.val = 1
END
@@ -1215,7 +1287,7 @@ def Test_instance_variable_access()
lines =<< trim END
vim9script
class A
- public this.val = 1
+ public var val = 1
endclass
var i = A.val
END
@@ -1225,7 +1297,7 @@ def Test_instance_variable_access()
lines =<< trim END
vim9script
class A
- public this.val = 1
+ public var val = 1
endclass
def T()
A.val = 1
@@ -1238,7 +1310,7 @@ def Test_instance_variable_access()
lines =<< trim END
vim9script
class A
- public this.val = 1
+ public var val = 1
endclass
def T()
var i = A.val
@@ -1251,9 +1323,9 @@ def Test_instance_variable_access()
lines =<< trim END
vim9script
class A
- this.ro_obj_var = 10
- public this.rw_obj_var = 20
- this._priv_obj_var = 30
+ var ro_obj_var = 10
+ public var rw_obj_var = 20
+ var _priv_obj_var = 30
endclass
class B extends A
@@ -1280,34 +1352,25 @@ def Test_class_variable_access()
var lines =<< trim END
vim9script
class Something
- stat this.val = 1
+ stat var val = 1
endclass
END
- v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: stat this.val = 1', 3)
-
- # Test for "static" cannot be followed by "this".
- lines =<< trim END
- vim9script
- class Something
- static this.val = 1
- endclass
- END
- v9.CheckSourceFailure(lines, 'E1368: Static cannot be followed by "this" in a variable name', 3)
+ v9.CheckSourceFailure(lines, 'E1065: Command cannot be shortened: stat var val = 1', 3)
# Test for "static" cannot be followed by "public".
lines =<< trim END
vim9script
class Something
- static public val = 1
+ static public var val = 1
endclass
END
- v9.CheckSourceFailure(lines, 'E1022: Type or initialization required', 3)
+ v9.CheckSourceFailure(lines, 'E1368: Static must be followed by "var" or "def"', 3)
# A readonly class variable cannot be modified from a child class
lines =<< trim END
vim9script
class A
- static ro_class_var = 40
+ static var ro_class_var = 40
endclass
class B extends A
@@ -1325,7 +1388,7 @@ def Test_class_variable_access()
lines =<< trim END
vim9script
class A
- static _priv_class_var = 60
+ static var _priv_class_var = 60
endclass
class B extends A
@@ -1343,7 +1406,7 @@ def Test_class_variable_access()
lines =<< trim END
vim9script
class A
- static _priv_class_var = 60
+ static var _priv_class_var = 60
endclass
class B extends A
@@ -1361,9 +1424,9 @@ def Test_class_variable_access()
lines =<< trim END
vim9script
class A
- static ro_class_var = 10
- public static rw_class_var = 20
- static _priv_class_var = 30
+ static var ro_class_var = 10
+ public static var rw_class_var = 20
+ static var _priv_class_var = 30
endclass
class B extends A
@@ -1392,8 +1455,8 @@ def Test_class_object_compare()
var class_lines =<< trim END
vim9script
class Item
- this.nr = 0
- this.name = 'xx'
+ var nr = 0
+ var name = 'xx'
endclass
END
@@ -1435,13 +1498,13 @@ def Test_object_type()
vim9script
class One
- this.one = 1
+ var one = 1
endclass
class Two
- this.two = 2
+ var two = 2
endclass
class TwoMore extends Two
- this.more = 9
+ var more = 9
endclass
var o: One = One.new()
@@ -1457,10 +1520,10 @@ def Test_object_type()
vim9script
class One
- this.one = 1
+ var one = 1
endclass
class Two
- this.two = 2
+ var two = 2
endclass
var o: One = Two.new()
@@ -1474,7 +1537,7 @@ def Test_object_type()
def GetMember(): number
endinterface
class Two implements One
- this.one = 1
+ var one = 1
def GetMember(): number
return this.one
enddef
@@ -1489,7 +1552,7 @@ def Test_object_type()
vim9script
class Num
- this.n: number = 0
+ var n: number = 0
endclass
def Ref(name: string): func(Num): Num
@@ -1511,11 +1574,11 @@ def Test_class_member()
var lines =<< trim END
vim9script
class TextPos
- this.lnum = 1
- this.col = 1
- static counter = 0
- static _secret = 7
- public static anybody = 42
+ var lnum = 1
+ var col = 1
+ static var counter = 0
+ static var _secret = 7
+ public static var anybody = 42
static def AddToCounter(nr: number)
counter += nr
@@ -1551,8 +1614,8 @@ def Test_class_member()
lines =<< trim END
vim9script
class OtherThing
- this.size: number
- static totalSize: number
+ var size: number
+ static var totalSize: number
def new(this.size)
totalSize += this.size
@@ -1571,7 +1634,7 @@ def Test_class_member()
vim9script
class HTML
- static author: string = 'John Doe'
+ static var author: string = 'John Doe'
static def MacroSubstitute(s: string): string
return substitute(s, '{{author}}', author, 'gi')
@@ -1588,7 +1651,7 @@ def Test_class_member()
vim9script
class Foo
- this._x: number = 0
+ var _x: number = 0
def Add(n: number): number
const F = (): number => this._x + n
@@ -1606,7 +1669,7 @@ def Test_class_member()
vim9script
class Foo
- this._x: number = 6
+ var _x: number = 6
def Add(n: number): number
var Lam = () => {
@@ -1627,7 +1690,7 @@ def Test_class_member()
vim9script
class Some
- static count = 0
+ static var count = 0
def Method(count: number)
echo count
enddef
@@ -1643,7 +1706,7 @@ def Test_class_member()
vim9script
class Some
- static count = 0
+ static var count = 0
def Method(arg: number)
var count = 3
echo arg count
@@ -1659,7 +1722,7 @@ def Test_class_member()
lines =<< trim END
vim9script
class A
- this.val: xxx
+ var val: xxx
endclass
END
v9.CheckSourceFailure(lines, 'E1010: Type not recognized: xxx', 3)
@@ -1668,7 +1731,7 @@ def Test_class_member()
lines =<< trim END
vim9script
class A
- public this.val: string
+ public var val: string
endclass
def F()
@@ -1683,7 +1746,7 @@ def Test_class_member()
lines =<< trim END
vim9script
class A
- this.val: string
+ var val: string
endclass
def F()
@@ -1698,7 +1761,7 @@ def Test_class_member()
lines =<< trim END
vim9script
class A
- public this.val: string
+ public var val: string
endclass
var obj: A
@@ -1710,7 +1773,7 @@ def Test_class_member()
lines =<< trim END
vim9script
class A
- this.val: string
+ var val: string
endclass
var obj: A
@@ -1723,14 +1786,14 @@ def Test_class_member()
lines =<< trim END
vim9script
class A
- this.val: number= 10
+ var val: number= 10
endclass
END
v9.CheckSourceFailure(lines, "E1004: White space required before and after '='", 3)
lines =<< trim END
vim9script
class A
- this.val: number =10
+ var val: number =10
endclass
END
v9.CheckSourceFailure(lines, "E1004: White space required before and after '='", 3)
@@ -1753,7 +1816,7 @@ def Test_defining_class_message()
vim9script
class Base
- this._v1: list<list<number>>
+ var _v1: list<list<number>>
endclass
class Child extends Base
@@ -1767,7 +1830,7 @@ def Test_defining_class_message()
vim9script
class Base
- this._v1: list<list<number>>
+ var _v1: list<list<number>>
endclass
class Child extends Base
@@ -1784,7 +1847,7 @@ def Test_defining_class_message()
vim9script
class Base
- this.v1: list<list<number>>
+ var v1: list<list<number>>
endclass
class Child extends Base
@@ -1798,7 +1861,7 @@ def Test_defining_class_message()
vim9script
class Base
- this.v1: list<list<number>>
+ var v1: list<list<number>>
endclass
class Child extends Base
@@ -1821,7 +1884,7 @@ def Test_defining_class_message()
endclass
class Base extends Base0
- this._v1: list<list<number>>
+ var _v1: list<list<number>>
endclass
class Child extends Base
@@ -1847,7 +1910,7 @@ def Test_defining_class_message()
endclass
class Child extends Base
- this._v1: list<list<number>>
+ var _v1: list<list<number>>
endclass
def F()
@@ -1864,9 +1927,9 @@ func Test_class_garbagecollect()
vim9script
class Point
- this.p = [2, 3]
- static pl = ['a', 'b']
- static pd = {a: 'a', b: 'b'}
+ var p = [2, 3]
+ static var pl = ['a', 'b']
+ static var pd = {a: 'a', b: 'b'}
endclass
echo Point.pl Point.pd
@@ -1882,15 +1945,15 @@ func Test_class_garbagecollect()
endinterface
class Widget
- this.view: View
+ var view: View
endclass
class MyView implements View
- this.widget: Widget
+ var widget: Widget
def new()
# this will result in a circular reference to this object
- this.widget = Widget.new(this)
+ var widget = Widget.new(this)
enddef
endclass
@@ -1909,17 +1972,17 @@ func Test_interface_garbagecollect()
vim9script
interface I
- this.ro_obj_var: number
+ var ro_obj_var: number
def ObjFoo(): number
endinterface
class A implements I
- static ro_class_var: number = 10
- public static rw_class_var: number = 20
- static _priv_class_var: number = 30
- this.ro_obj_var: number = 40
- this._priv_obj_var: number = 60
+ static var ro_class_var: number = 10
+ public static var rw_class_var: number = 20
+ static var _priv_class_var: number = 30
+ var ro_obj_var: number = 40
+ var _priv_obj_var: number = 60
static def _ClassBar(): number
return _priv_class_var
@@ -1952,8 +2015,8 @@ def Test_class_method()
var lines =<< trim END
vim9script
class Value
- this.value = 0
- static objects = 0
+ var value = 0
+ static var objects = 0
def new(v: number)
this.value = v
@@ -1990,7 +2053,7 @@ def Test_class_method()
lines =<< trim END
vim9script
class A
- static myList: list<number> = [1]
+ static var myList: list<number> = [1]
static def Foo(n: number)
myList->add(n)
enddef
@@ -2087,8 +2150,8 @@ def Test_class_object_to_string()
var lines =<< trim END
vim9script
class TextPosition
- this.lnum = 1
- this.col = 22
+ var lnum = 1
+ var col = 22
endclass
assert_equal("class TextPosition", string(TextPosition))
@@ -2103,7 +2166,7 @@ def Test_interface_basics()
var lines =<< trim END
vim9script
interface Something
- this.ro_var: list<number>
+ var ro_var: list<number>
def GetCount(): number
endinterface
END
@@ -2111,7 +2174,7 @@ def Test_interface_basics()
lines =<< trim END
interface SomethingWrong
- static count = 7
+ static var count = 7
endinterface
END
v9.CheckSourceFailure(lines, 'E1342: Interface can only be defined in Vim9 script', 1)
@@ -2120,7 +2183,7 @@ def Test_interface_basics()
vim9script
interface Some
- this.value: number
+ var value: number
def Method(value: number)
endinterface
END
@@ -2131,7 +2194,7 @@ def Test_interface_basics()
lines =<< trim END
vim9script
interface somethingWrong
- static count = 7
+ static var count = 7
endinterface
END
v9.CheckSourceFailure(lines, 'E1343: Interface name must start with an uppercase letter: somethingWrong', 2)
@@ -2139,8 +2202,8 @@ def Test_interface_basics()
lines =<< trim END
vim9script
interface SomethingWrong
- this.value: string
- this.count = 7
+ var value: string
+ var count = 7
def GetCount(): number
endinterface
END
@@ -2149,8 +2212,8 @@ def Test_interface_basics()
lines =<< trim END
vim9script
interface SomethingWrong
- this.value: string
- this.count: number
+ var value: string
+ var count: number
def GetCount(): number
return 5
enddef
@@ -2201,24 +2264,24 @@ def Test_class_implements_interface()
vim9script
interface Some
- this.count: number
+ var count: number
def Method(nr: number)
endinterface
class SomeImpl implements Some
- this.count: number
+ var count: number
def Method(nr: number)
echo nr
enddef
endclass
interface Another
- this.member: string
+ var member: string
endinterface
class AnotherImpl implements Some, Another
- this.member = 'abc'
- this.count = 20
+ var member = 'abc'
+ var count = 20
def Method(nr: number)
echo nr
enddef
@@ -2230,11 +2293,11 @@ def Test_class_implements_interface()
vim9script
interface Some
- this.count: number
+ var count: number
endinterface
class SomeImpl implements Some implements Some
- this.count: number
+ var count: number
endclass
END
v9.CheckSourceFailure(lines, 'E1350: Duplicate "implements"', 7)
@@ -2243,11 +2306,11 @@ def Test_class_implements_interface()
vim9script
interface Some
- this.count: number
+ var count: number
endinterface
class SomeImpl implements Some, Some
- this.count: number
+ var count: number
endclass
END
v9.CheckSourceFailure(lines, 'E1351: Duplicate interface after "implements": Some', 7)
@@ -2256,12 +2319,12 @@ def Test_class_implements_interface()
vim9script
interface Some
- this.counter: number
+ var counter: number
def Method(nr: number)
endinterface
class SomeImpl implements Some
- this.count: number
+ var count: number
def Method(nr: number)
ech