Skip to content

Commit c561fb7

Browse files
committed
After some thought, I don't think tests for things that should work don't yet should be ignored, so enabled some of them, and fixed some code (surely this branch won't be the one to be merged so who cares!).
1 parent a1f5658 commit c561fb7

File tree

5 files changed

+59
-16
lines changed

5 files changed

+59
-16
lines changed

External/Plugins/ASCompletion/Model/ASFileParser.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1212,7 +1212,7 @@ public void ParseSrc(FileModel fileModel, string ba, bool allowBaReExtract)
12121212
else
12131213
{
12141214
// valid chars for identifiers
1215-
if (c1 >= 'A' && c1 <= 'Z')
1215+
if (char.IsLetter(c1))
12161216
{
12171217
addChar = true;
12181218
}
@@ -1269,7 +1269,7 @@ public void ParseSrc(FileModel fileModel, string ba, bool allowBaReExtract)
12691269
}
12701270
}
12711271
}
1272-
else if (inGeneric && (c1 == ',' || c1 == '.' || c1 == '-' || c1 == '>' || c1 == ':' || c1 == '(' || c1 == ')'))
1272+
else if (inGeneric && (c1 == ',' || c1 == '.' || c1 == '-' || c1 == '>' || c1 == ':' || c1 == '(' || c1 == ')' || c1 == '{' || c1 == '}' || c1 == ';'))
12731273
{
12741274
hadWS = false;
12751275
hadDot = false;

FlashDevelop.sln

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio 2010
3+
# Visual Studio 14
4+
VisualStudioVersion = 14.0.23107.0
5+
MinimumVisualStudioVersion = 10.0.40219.1
46
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FlashDevelop", "FlashDevelop\FlashDevelop.csproj", "{EFD07485-9A64-4EEC-94E7-ACBD4DA5CA93}"
57
ProjectSection(ProjectDependencies) = postProject
68
{61885F70-B4DC-4B44-852D-5D6D03F2A734} = {61885F70-B4DC-4B44-852D-5D6D03F2A734}

Tests/External/Plugins/ASCompletion.Tests/Model/ASFileParserTests.cs

Lines changed: 42 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,7 @@ public void ParseFile_Generics()
641641
}
642642
}
643643

644-
[Ignore("Easy fix, to add")]
644+
[Test]
645645
public void ParseFile_GenericsWithObjectConstraints()
646646
{
647647
using (
@@ -651,7 +651,7 @@ public void ParseFile_GenericsWithObjectConstraints()
651651
var srcModel = new FileModel(resourceFile.DestinationFile);
652652
srcModel.Context = new HaXeContext.Context(new HaXeContext.HaXeSettings());
653653
var model = ASFileParser.ParseFile(srcModel);
654-
Assert.AreEqual(2, model.Classes.Count);
654+
Assert.AreEqual(3, model.Classes.Count);
655655

656656
var objectConstraintGeneric = model.Classes[0];
657657
Assert.AreEqual(2, objectConstraintGeneric.LineFrom);
@@ -688,14 +688,6 @@ public void ParseFile_GenericsWithObjectConstraints()
688688
arg = member.Parameters[1];
689689
Assert.AreEqual("actual", arg.Name);
690690
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);
699691

700692
var fullConstraintGeneric = model.Classes[1];
701693
Assert.AreEqual(13, fullConstraintGeneric.LineFrom);
@@ -734,6 +726,44 @@ public void ParseFile_GenericsWithObjectConstraints()
734726
arg = member.Parameters[1];
735727
Assert.AreEqual("actual", arg.Name);
736728
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+
737767
}
738768
}
739769

@@ -1055,7 +1085,7 @@ public void ParseFile_FunctionTypes()
10551085
}
10561086
}
10571087

1058-
[Ignore("Not supported for now")]
1088+
[Test]
10591089
public void ParseFile_FunctionTypesWithSubTypes()
10601090
{
10611091
using (
@@ -1289,7 +1319,7 @@ public void ParseFile_ComplexClass()
12891319
}
12901320
}
12911321

1292-
[Ignore("Unsupported at the moment")]
1322+
[Test]
12931323
public void ParseFile_IdentifiersWithUnicodeChars()
12941324
{
12951325
using (var resourceFile = new TestFile("ASCompletion.Test_Files.parser.haxe.IdentifiersWithUnicodeCharsTest.hx"))

Tests/External/Plugins/ASCompletion.Tests/Test Files/parser/haxe/GenericsObjectConstraintTest.hx

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,15 @@ class TestFullConstraint<T:({}, Measurable), Z:(Iterable<String>, Measurable)>
2020
public function test2<K:({}, Measurable), V:(Iterable<String>, Measurable)>(expected:K, actual:V):K
2121
{
2222
}
23+
}
24+
25+
class TestTypeDefConstraint<T:({ function new():Void; }, Measurable)>
26+
{
27+
public function test1(expected:T, actual:T):T
28+
{
29+
}
30+
31+
public function test2<K:({ function new():Void; }, Measurable)>(expected:K, actual:K):K
32+
{
33+
}
2334
}

Tests/External/Plugins/ASCompletion.Tests/Test Files/parser/haxe/IdentifiersWithUnicodeCharsTest.hx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,5 @@ class Test
66
{
77
}
88

9-
public var 日本語文字ヴァリアブルDynamic;
9+
public var 日本語文字ヴァリアブル:Dynamic;
1010
}

0 commit comments

Comments
 (0)