7
7
8
8
namespace ASCompletion . Model
9
9
{
10
- [ TestFixture ]
11
10
class ASFileParserTests
12
11
{
12
+ [ TestFixture ]
13
13
public class As3
14
14
{
15
15
[ Test ]
@@ -70,6 +70,7 @@ public void ParseFile_OverrideFunction()
70
70
71
71
}
72
72
73
+ [ TestFixture ]
73
74
public class Haxe
74
75
{
75
76
[ Test ]
@@ -1057,6 +1058,37 @@ public void ParseFile_ImportAliases()
1057
1058
}
1058
1059
}
1059
1060
1061
+ [ Test ]
1062
+ public void ParseFile_AnonymousStructures ( )
1063
+ {
1064
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.parser.haxe.AnonymousStructuresTest.hx" ) )
1065
+ {
1066
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
1067
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
1068
+ var model = ASFileParser . ParseFile ( srcModel ) ;
1069
+
1070
+ Assert . AreEqual ( 1 , model . Classes . Count ) ;
1071
+
1072
+ var classModel = model . Classes [ 0 ] ;
1073
+
1074
+ Assert . AreEqual ( 2 , classModel . Members . Count ) ;
1075
+
1076
+ var member = classModel . Members [ 0 ] ;
1077
+ Assert . AreEqual ( "start" , member . Name ) ;
1078
+ Assert . AreEqual ( 1 , member . LineFrom ) ;
1079
+ Assert . AreEqual ( 1 , member . LineTo ) ;
1080
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1081
+ Assert . AreEqual ( "{x:Int, y:Int}" , member . Type ) ;
1082
+
1083
+ member = classModel . Members [ 1 ] ;
1084
+ Assert . AreEqual ( "target" , member . Name ) ;
1085
+ Assert . AreEqual ( 2 , member . LineFrom ) ;
1086
+ Assert . AreEqual ( 2 , member . LineTo ) ;
1087
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1088
+ Assert . AreEqual ( "{x:Int, y:Int}" , member . Type ) ;
1089
+ }
1090
+ }
1091
+
1060
1092
[ Test ]
1061
1093
public void ParseFile_FunctionTypes ( )
1062
1094
{
@@ -1075,12 +1107,14 @@ public void ParseFile_FunctionTypes()
1075
1107
Assert . AreEqual ( "functionType" , member . Name ) ;
1076
1108
Assert . AreEqual ( 2 , member . LineFrom ) ;
1077
1109
Assert . AreEqual ( 2 , member . LineTo ) ;
1110
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1078
1111
Assert . AreEqual ( "Dynamic->Dynamic" , member . Type ) ;
1079
1112
1080
1113
member = model . Members [ 2 ] ;
1081
1114
Assert . AreEqual ( "functionType2" , member . Name ) ;
1082
1115
Assert . AreEqual ( 3 , member . LineFrom ) ;
1083
1116
Assert . AreEqual ( 3 , member . LineTo ) ;
1117
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1084
1118
Assert . AreEqual ( "Int->Int->Int" , member . Type ) ;
1085
1119
}
1086
1120
}
@@ -1099,19 +1133,43 @@ public void ParseFile_FunctionTypesWithSubTypes()
1099
1133
Context . ASContext . Context = context ;
1100
1134
var model = context . GetCodeModel ( File . ReadAllText ( resourceFile . DestinationFile ) ) ;
1101
1135
1102
- Assert . AreEqual ( 3 , model . Members . Count ) ;
1136
+ Assert . AreEqual ( 4 , model . Members . Count ) ;
1103
1137
1104
1138
var member = model . Members [ 0 ] ;
1139
+ Assert . AreEqual ( "functionTypesWithSubTypes" , member . Name ) ;
1140
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
1141
+ Assert . AreEqual ( 3 , member . Parameters . Count ) ;
1142
+ var arg = member . Parameters [ 0 ] ;
1143
+ Assert . AreEqual ( "functionTypeArg" , arg . Name ) ;
1144
+ Assert . AreEqual ( "(Dynamic->Dynamic)->Dynamic" , arg . Type ) ;
1145
+ arg = member . Parameters [ 1 ] ;
1146
+ Assert . AreEqual ( "functionTypeArg2" , arg . Name ) ;
1147
+ Assert . AreEqual ( "(Dynamic->Dynamic)->(Int->Int)" , arg . Type ) ;
1148
+ Assert . AreEqual ( "null" , arg . Value ) ;
1149
+ arg = member . Parameters [ 2 ] ;
1150
+ Assert . AreEqual ( "test2" , arg . Name ) ;
1151
+ Assert . AreEqual ( "String" , arg . Type ) ;
1152
+
1153
+ member = model . Members [ 1 ] ;
1105
1154
Assert . AreEqual ( "functionType" , member . Name ) ;
1106
1155
Assert . AreEqual ( 2 , member . LineFrom ) ;
1107
1156
Assert . AreEqual ( 2 , member . LineTo ) ;
1157
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1108
1158
Assert . AreEqual ( "(Dynamic->Dynamic)->Dynamic" , member . Type ) ;
1109
1159
1110
- member = model . Members [ 1 ] ;
1160
+ member = model . Members [ 2 ] ;
1111
1161
Assert . AreEqual ( "functionType2" , member . Name ) ;
1112
1162
Assert . AreEqual ( 3 , member . LineFrom ) ;
1113
1163
Assert . AreEqual ( 3 , member . LineTo ) ;
1164
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1114
1165
Assert . AreEqual ( "((Dynamic->Dynamic)->Int->)Int" , member . Type ) ;
1166
+
1167
+ member = model . Members [ 3 ] ;
1168
+ Assert . AreEqual ( "functionType3" , member . Name ) ;
1169
+ Assert . AreEqual ( 4 , member . LineFrom ) ;
1170
+ Assert . AreEqual ( 4 , member . LineTo ) ;
1171
+ Assert . AreEqual ( FlagType . Variable , member . Flags & FlagType . Variable ) ;
1172
+ Assert . AreEqual ( "(Dynamic->Dynamic)->(Int->Int)" , member . Type ) ;
1115
1173
}
1116
1174
}
1117
1175
0 commit comments