@@ -1591,6 +1591,97 @@ public void ParseFile_MethodAfterGenericReturn()
1591
1591
}
1592
1592
}
1593
1593
1594
+ [ Test ( Description = "Issue 1125" ) ]
1595
+ public void ParseFile_FunctionTypesAsArguments ( )
1596
+ {
1597
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.parser.haxe.FunctionTypesAsArgumentsTest.hx" ) )
1598
+ {
1599
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
1600
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
1601
+ var model = ASFileParser . ParseFile ( srcModel ) ;
1602
+ var classModel = model . Classes [ 0 ] ;
1603
+ Assert . AreEqual ( "Test" , classModel . Name ) ;
1604
+ Assert . AreEqual ( FlagType . Class , classModel . Flags & FlagType . Class ) ;
1605
+ Assert . AreEqual ( 2 , classModel . LineFrom ) ;
1606
+ Assert . AreEqual ( 15 , classModel . LineTo ) ;
1607
+ Assert . AreEqual ( 3 , classModel . Members . Count ) ;
1608
+
1609
+ var memberModel = classModel . Members [ 0 ] ;
1610
+ Assert . AreEqual ( "func1" , memberModel . Name ) ;
1611
+ Assert . AreEqual ( "Array<Dynamic>" , memberModel . Type ) ;
1612
+ var flags = FlagType . Function ;
1613
+ Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
1614
+ Assert . AreEqual ( Visibility . Private , memberModel . Access ) ;
1615
+ Assert . AreEqual ( 4 , memberModel . LineFrom ) ;
1616
+ Assert . AreEqual ( 6 , memberModel . LineTo ) ;
1617
+ Assert . AreEqual ( 1 , memberModel . Parameters . Count ) ;
1618
+ Assert . AreEqual ( "arg" , memberModel . Parameters [ 0 ] . Name ) ;
1619
+ Assert . AreEqual ( "(Float->Int)->(Int->Array<Dynamic>)" , memberModel . Parameters [ 0 ] . Type ) ;
1620
+
1621
+ memberModel = classModel . Members [ 1 ] ;
1622
+ Assert . AreEqual ( "func2" , memberModel . Name ) ;
1623
+ Assert . AreEqual ( null , memberModel . Type ) ;
1624
+ flags = FlagType . Function ;
1625
+ Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
1626
+ Assert . AreEqual ( Visibility . Public , memberModel . Access ) ;
1627
+ Assert . AreEqual ( 8 , memberModel . LineFrom ) ;
1628
+ Assert . AreEqual ( 10 , memberModel . LineTo ) ;
1629
+ Assert . AreEqual ( 2 , memberModel . Parameters . Count ) ;
1630
+ Assert . AreEqual ( "arg1" , memberModel . Parameters [ 0 ] . Name ) ;
1631
+ Assert . AreEqual ( "Int->Void" , memberModel . Parameters [ 0 ] . Type ) ;
1632
+ Assert . AreEqual ( "arg2" , memberModel . Parameters [ 1 ] . Name ) ;
1633
+ Assert . AreEqual ( "Dynamic" , memberModel . Parameters [ 1 ] . Type ) ;
1634
+
1635
+ memberModel = classModel . Members [ 2 ] ;
1636
+ Assert . AreEqual ( "func3" , memberModel . Name ) ;
1637
+ Assert . AreEqual ( "Int" , memberModel . Type ) ;
1638
+ flags = FlagType . Function ;
1639
+ Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
1640
+ Assert . AreEqual ( Visibility . Private , memberModel . Access ) ;
1641
+ Assert . AreEqual ( 12 , memberModel . LineFrom ) ;
1642
+ Assert . AreEqual ( 14 , memberModel . LineTo ) ;
1643
+ Assert . AreEqual ( 1 , memberModel . Parameters . Count ) ;
1644
+ Assert . AreEqual ( "arg" , memberModel . Parameters [ 0 ] . Name ) ;
1645
+ Assert . AreEqual ( "Float" , memberModel . Parameters [ 0 ] . Type ) ;
1646
+ }
1647
+ }
1648
+
1649
+ [ Test ( Description = "Issue 1141" ) ]
1650
+ public void ParseFile_KeywordAndUnderscoreInName ( )
1651
+ {
1652
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.parser.haxe.KeywordAndUnderscoreInNameTest.hx" ) )
1653
+ {
1654
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
1655
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
1656
+ var model = ASFileParser . ParseFile ( srcModel ) ;
1657
+ var classModel = model . Classes [ 0 ] ;
1658
+ Assert . AreEqual ( 1 , model . Classes . Count ) ;
1659
+ Assert . AreEqual ( "Test" , classModel . Name ) ;
1660
+ Assert . AreEqual ( FlagType . Class , classModel . Flags & FlagType . Class ) ;
1661
+ Assert . AreEqual ( 2 , classModel . LineFrom ) ;
1662
+ Assert . AreEqual ( 6 , classModel . LineTo ) ;
1663
+ Assert . AreEqual ( 2 , classModel . Members . Count ) ;
1664
+
1665
+ var memberModel = classModel . Members [ 0 ] ;
1666
+ Assert . AreEqual ( "var_1244" , memberModel . Name ) ;
1667
+ Assert . AreEqual ( "Int" , memberModel . Type ) ;
1668
+ var flags = FlagType . Variable | FlagType . Static ;
1669
+ Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
1670
+ Assert . AreEqual ( Visibility . Public , memberModel . Access & Visibility . Public ) ;
1671
+ Assert . AreEqual ( 4 , memberModel . LineFrom ) ;
1672
+ Assert . AreEqual ( 4 , memberModel . LineTo ) ;
1673
+
1674
+ memberModel = classModel . Members [ 1 ] ;
1675
+ Assert . AreEqual ( "ERR_LOGINFAILED" , memberModel . Name ) ;
1676
+ Assert . AreEqual ( "Int" , memberModel . Type ) ;
1677
+ flags = FlagType . Variable | FlagType . Static ;
1678
+ Assert . AreEqual ( flags , memberModel . Flags & flags ) ;
1679
+ Assert . AreEqual ( Visibility . Public , memberModel . Access & Visibility . Public ) ;
1680
+ Assert . AreEqual ( 5 , memberModel . LineFrom ) ;
1681
+ Assert . AreEqual ( 5 , memberModel . LineTo ) ;
1682
+ }
1683
+ }
1684
+
1594
1685
[ Test ]
1595
1686
public void ParseFile_IdentifiersWithUnicodeChars ( )
1596
1687
{
0 commit comments