@@ -591,7 +591,7 @@ def test_Lambda_parameters(self):
591591 tree = jast .parse ("(int x, boolean y) -> x" , jast .ParseMode .EXPR )
592592 self .assertIsInstance (tree , jast .Lambda )
593593 self .assertIsInstance (tree .args , jast .params )
594- self .assertIsNone (tree .args .receiver_parameter )
594+ self .assertIsNone (tree .args .receiver_param )
595595 self .assertEqual (2 , len (tree .args .parameters ))
596596 param = tree .args .parameters [0 ]
597597 self .assertIsInstance (param , jast .param )
@@ -608,7 +608,7 @@ def test_Lambda_var_parameters(self):
608608 tree = jast .parse ("(var x, var y) -> x" , jast .ParseMode .EXPR )
609609 self .assertIsInstance (tree , jast .Lambda )
610610 self .assertIsInstance (tree .args , jast .params )
611- self .assertIsNone (tree .args .receiver_parameter )
611+ self .assertIsNone (tree .args .receiver_param )
612612 self .assertEqual (2 , len (tree .args .parameters ))
613613 param = tree .args .parameters [0 ]
614614 self .assertIsInstance (param , jast .param )
@@ -1490,3 +1490,86 @@ def test_Reference_class_type(self):
14901490 self .assertIsInstance (tree .type_args .types [0 ], jast .Int )
14911491 self .assertIsNone (tree .id )
14921492 self .assertTrue (tree .new )
1493+
1494+ def test_arrayinit (self ):
1495+ tree = jast .parse ("int[] x = {42, 24};" , jast .ParseMode .DECL )
1496+ self .assertIsInstance (tree , jast .Field )
1497+ self .assertIsInstance (tree .type , jast .ArrayType )
1498+ self .assertIsInstance (tree .type .type , jast .Int )
1499+ self .assertEqual (1 , len (tree .type .dims ))
1500+ self .assertIsInstance (tree .type .dims [0 ], jast .dim )
1501+ self .assertEqual (1 , len (tree .declarators ))
1502+ declarator = tree .declarators [0 ]
1503+ self .assertIsInstance (declarator , jast .declarator )
1504+ self .assertIsInstance (declarator .id , jast .variabledeclaratorid )
1505+ self ._test_identifier (declarator .id .id , "x" )
1506+ self .assertEqual (0 , len (declarator .id .dims ))
1507+ self .assertIsNotNone (declarator .initializer )
1508+ self .assertIsInstance (declarator .initializer , jast .arrayinit )
1509+ self .assertEqual (2 , len (declarator .initializer .values ))
1510+ self ._test_int_constant (declarator .initializer .values [0 ], 42 )
1511+ self ._test_int_constant (declarator .initializer .values [1 ], 24 )
1512+
1513+ def test_params (self ):
1514+ tree = jast .parse (
1515+ "int foo(int x.y.this, final int a, final int @bar ... b[][]) {}" ,
1516+ jast .ParseMode .DECL ,
1517+ )
1518+ self .assertIsInstance (tree , jast .Method )
1519+ self .assertIsInstance (tree .return_type , jast .Int )
1520+ self .assertIsInstance (tree .parameters , jast .params )
1521+ self .assertIsNotNone (tree .parameters .receiver_param )
1522+ self .assertIsInstance (tree .parameters .receiver_param , jast .receiver )
1523+ self .assertIsInstance (tree .parameters .receiver_param .type , jast .Int )
1524+ self .assertEqual (2 , len (tree .parameters .receiver_param .identifiers ))
1525+ self ._test_identifier (tree .parameters .receiver_param .identifiers [0 ], "x" )
1526+ self ._test_identifier (tree .parameters .receiver_param .identifiers [1 ], "y" )
1527+ self .assertEqual (2 , len (tree .parameters .parameters ))
1528+ param = tree .parameters .parameters [0 ]
1529+ self .assertIsInstance (param , jast .param )
1530+ self .assertEqual (1 , len (param .modifiers ))
1531+ self .assertIsInstance (param .modifiers [0 ], jast .Final )
1532+ self .assertIsInstance (param .type , jast .Int )
1533+ self .assertIsInstance (param .id , jast .variabledeclaratorid )
1534+ self ._test_identifier (param .id .id , "a" )
1535+ self .assertEqual (0 , len (param .id .dims ))
1536+ param = tree .parameters .parameters [1 ]
1537+ self .assertIsInstance (param , jast .arity )
1538+ self .assertEqual (1 , len (param .modifiers ))
1539+ self .assertIsInstance (param .modifiers [0 ], jast .Final )
1540+ self .assertIsInstance (param .type , jast .Int )
1541+ self .assertEqual (1 , len (param .annotations ))
1542+ self .assertIsInstance (param .annotations [0 ], jast .Annotation )
1543+ self .assertIsInstance (param .id , jast .variabledeclaratorid )
1544+ self ._test_identifier (param .id .id , "b" )
1545+ self .assertEqual (2 , len (param .id .dims ))
1546+ self .assertIsInstance (tree .body , jast .Block )
1547+ self .assertEqual (0 , len (tree .body .body ))
1548+
1549+ def test_params_no_receiver (self ):
1550+ tree = jast .parse (
1551+ "int foo(int a, int ... b[][]) {}" ,
1552+ jast .ParseMode .DECL ,
1553+ )
1554+ self .assertIsInstance (tree , jast .Method )
1555+ self .assertIsInstance (tree .return_type , jast .Int )
1556+ self .assertIsInstance (tree .parameters , jast .params )
1557+ self .assertIsNone (tree .parameters .receiver_param )
1558+ self .assertEqual (2 , len (tree .parameters .parameters ))
1559+ param = tree .parameters .parameters [0 ]
1560+ self .assertIsInstance (param , jast .param )
1561+ self .assertEqual (0 , len (param .modifiers ))
1562+ self .assertIsInstance (param .type , jast .Int )
1563+ self .assertIsInstance (param .id , jast .variabledeclaratorid )
1564+ self ._test_identifier (param .id .id , "a" )
1565+ self .assertEqual (0 , len (param .id .dims ))
1566+ param = tree .parameters .parameters [1 ]
1567+ self .assertIsInstance (param , jast .arity )
1568+ self .assertEqual (0 , len (param .modifiers ))
1569+ self .assertIsInstance (param .type , jast .Int )
1570+ self .assertEqual (0 , len (param .annotations ))
1571+ self .assertIsInstance (param .id , jast .variabledeclaratorid )
1572+ self ._test_identifier (param .id .id , "b" )
1573+ self .assertEqual (2 , len (param .id .dims ))
1574+ self .assertIsInstance (tree .body , jast .Block )
1575+ self .assertEqual (0 , len (tree .body .body ))
0 commit comments