@@ -641,7 +641,7 @@ public void ParseFile_Generics()
641
641
}
642
642
}
643
643
644
- [ Ignore ( "Easy fix, to add" ) ]
644
+ [ Test ]
645
645
public void ParseFile_GenericsWithObjectConstraints ( )
646
646
{
647
647
using (
@@ -651,7 +651,7 @@ public void ParseFile_GenericsWithObjectConstraints()
651
651
var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
652
652
srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
653
653
var model = ASFileParser . ParseFile ( srcModel ) ;
654
- Assert . AreEqual ( 2 , model . Classes . Count ) ;
654
+ Assert . AreEqual ( 3 , model . Classes . Count ) ;
655
655
656
656
var objectConstraintGeneric = model . Classes [ 0 ] ;
657
657
Assert . AreEqual ( 2 , objectConstraintGeneric . LineFrom ) ;
@@ -688,14 +688,6 @@ public void ParseFile_GenericsWithObjectConstraints()
688
688
arg = member . Parameters [ 1 ] ;
689
689
Assert . AreEqual ( "actual" , arg . Name ) ;
690
690
Assert . AreEqual ( "K" , arg . Type ) ;
691
- var simpleGeneric = model . Classes [ 0 ] ;
692
- Assert . AreEqual ( 2 , simpleGeneric . LineFrom ) ;
693
- Assert . AreEqual ( 11 , simpleGeneric . LineTo ) ;
694
- Assert . AreEqual ( FlagType . Class , simpleGeneric . Flags & FlagType . Class ) ;
695
- Assert . AreEqual ( "Test<T>" , simpleGeneric . FullName ) ;
696
- Assert . AreEqual ( "Test" , simpleGeneric . Name ) ;
697
- Assert . AreEqual ( "<T>" , simpleGeneric . Template ) ;
698
- Assert . AreEqual ( 2 , simpleGeneric . Members . Count ) ;
699
691
700
692
var fullConstraintGeneric = model . Classes [ 1 ] ;
701
693
Assert . AreEqual ( 13 , fullConstraintGeneric . LineFrom ) ;
@@ -734,6 +726,44 @@ public void ParseFile_GenericsWithObjectConstraints()
734
726
arg = member . Parameters [ 1 ] ;
735
727
Assert . AreEqual ( "actual" , arg . Name ) ;
736
728
Assert . AreEqual ( "V" , arg . Type ) ;
729
+
730
+ // TODO: There should be a space between 'function' and 'new'! There should be a separate test covering this error
731
+ var typeDefConstraintGeneric = model . Classes [ 2 ] ;
732
+ Assert . AreEqual ( 24 , typeDefConstraintGeneric . LineFrom ) ;
733
+ Assert . AreEqual ( 33 , typeDefConstraintGeneric . LineTo ) ;
734
+ Assert . AreEqual ( FlagType . Class , typeDefConstraintGeneric . Flags & FlagType . Class ) ;
735
+ Assert . AreEqual ( "TestTypeDefConstraint<T:({functionnew():Void;},Measurable)>" , typeDefConstraintGeneric . FullName ) ;
736
+ Assert . AreEqual ( "TestTypeDefConstraint" , typeDefConstraintGeneric . Name ) ;
737
+ Assert . AreEqual ( "<T:({functionnew():Void;},Measurable)>" , typeDefConstraintGeneric . Template ) ;
738
+ Assert . AreEqual ( 2 , typeDefConstraintGeneric . Members . Count ) ;
739
+ member = typeDefConstraintGeneric . Members [ 0 ] ;
740
+ Assert . AreEqual ( "test1" , member . Name ) ;
741
+ Assert . AreEqual ( 26 , member . LineFrom ) ;
742
+ Assert . AreEqual ( 28 , member . LineTo ) ;
743
+ Assert . AreEqual ( "T" , member . Type ) ;
744
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
745
+ Assert . AreEqual ( 2 , member . Parameters . Count ) ;
746
+ arg = member . Parameters [ 0 ] ;
747
+ Assert . AreEqual ( "expected" , arg . Name ) ;
748
+ Assert . AreEqual ( "T" , arg . Type ) ;
749
+ arg = member . Parameters [ 1 ] ;
750
+ Assert . AreEqual ( "actual" , arg . Name ) ;
751
+ Assert . AreEqual ( "T" , arg . Type ) ;
752
+ member = typeDefConstraintGeneric . Members [ 1 ] ;
753
+ Assert . AreEqual ( "test2<K:({functionnew():Void;},Measurable)>" , member . FullName ) ;
754
+ Assert . AreEqual ( "test2" , member . Name ) ;
755
+ Assert . AreEqual ( "<K:({functionnew():Void;},Measurable)>" , member . Template ) ;
756
+ Assert . AreEqual ( 30 , member . LineFrom ) ;
757
+ Assert . AreEqual ( 32 , member . LineTo ) ;
758
+ Assert . AreEqual ( "K" , member . Type ) ;
759
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
760
+ arg = member . Parameters [ 0 ] ;
761
+ Assert . AreEqual ( "expected" , arg . Name ) ;
762
+ Assert . AreEqual ( "K" , arg . Type ) ;
763
+ arg = member . Parameters [ 1 ] ;
764
+ Assert . AreEqual ( "actual" , arg . Name ) ;
765
+ Assert . AreEqual ( "K" , arg . Type ) ;
766
+
737
767
}
738
768
}
739
769
@@ -1055,7 +1085,7 @@ public void ParseFile_FunctionTypes()
1055
1085
}
1056
1086
}
1057
1087
1058
- [ Ignore ( "Not supported for now" ) ]
1088
+ [ Test ]
1059
1089
public void ParseFile_FunctionTypesWithSubTypes ( )
1060
1090
{
1061
1091
using (
@@ -1289,7 +1319,7 @@ public void ParseFile_ComplexClass()
1289
1319
}
1290
1320
}
1291
1321
1292
- [ Ignore ( "Unsupported at the moment" ) ]
1322
+ [ Test ]
1293
1323
public void ParseFile_IdentifiersWithUnicodeChars ( )
1294
1324
{
1295
1325
using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.parser.haxe.IdentifiersWithUnicodeCharsTest.hx" ) )
0 commit comments