Browse Source

Fixed unit tests.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1422 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
5b72594fad
  1. 17
      src/Main/Base/Project/Src/Dom/Implementations/ConstructedReturnType.cs
  2. 13
      src/Main/Base/Project/Src/Dom/Implementations/GenericReturnType.cs
  3. 6
      src/Main/Base/Project/Src/Dom/Implementations/SystemTypes.cs
  4. 4
      src/Main/Base/Project/Src/Dom/MemberLookupHelper.cs
  5. 2
      src/Main/Base/Project/Src/Dom/ReflectionLayer/DomPersistence.cs
  6. 2
      src/Main/Base/Test/GenericResolverTests.cs
  7. 12
      src/Main/Base/Test/MemberLookupHelperTests.cs
  8. 2
      src/Main/Base/Test/NRefactoryResolverTests.cs
  9. 7
      src/Main/Base/Test/ReflectionLayerTests.cs

17
src/Main/Base/Project/Src/Dom/Implementations/ConstructedReturnType.cs

@ -75,9 +75,8 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -75,9 +75,8 @@ namespace ICSharpCode.SharpDevelop.Dom
bool CheckReturnType(IReturnType t)
{
if (t is GenericReturnType) {
GenericReturnType rt = (GenericReturnType)t;
return rt.TypeParameter.Method == null;
if (t.IsGenericReturnType) {
return t.CastToGenericReturnType().TypeParameter.Method == null;
} else if (t.IsArrayReturnType) {
return CheckReturnType(t.CastToArrayReturnType().ArrayElementType);
} else if (t.IsConstructedReturnType) {
@ -212,12 +211,6 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -212,12 +211,6 @@ namespace ICSharpCode.SharpDevelop.Dom
return l;
}
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override string ToString()
{
string r = "[ConstructedReturnType: ";
@ -232,6 +225,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -232,6 +225,12 @@ namespace ICSharpCode.SharpDevelop.Dom
return r + ">]";
}
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override bool IsArrayReturnType {
get {
return false;

13
src/Main/Base/Project/Src/Dom/Implementations/GenericReturnType.cs

@ -26,9 +26,10 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -26,9 +26,10 @@ namespace ICSharpCode.SharpDevelop.Dom
public override bool Equals(object o)
{
GenericReturnType rt = o as GenericReturnType;
if (rt == null) return false;
return typeParameter.Equals(rt.typeParameter);
IReturnType rt = o as IReturnType;
if (rt == null || !rt.IsGenericReturnType)
return false;
return typeParameter.Equals(rt.CastToGenericReturnType().typeParameter);
}
public override int GetHashCode()
@ -111,6 +112,12 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -111,6 +112,12 @@ namespace ICSharpCode.SharpDevelop.Dom
return String.Format("[GenericReturnType: {0}]", typeParameter);
}
public override bool IsDefaultReturnType {
get {
return false;
}
}
public override bool IsArrayReturnType {
get {
return false;

6
src/Main/Base/Project/Src/Dom/Implementations/SystemTypes.cs

@ -77,11 +77,11 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -77,11 +77,11 @@ namespace ICSharpCode.SharpDevelop.Dom
public class VoidClass : DefaultClass
{
public static readonly VoidClass Instance = new VoidClass();
internal static readonly string VoidName = typeof(void).FullName;
public static readonly VoidClass Instance = new VoidClass();
public VoidClass() : base(DefaultCompilationUnit.DummyCompilationUnit, VoidName)
public VoidClass()
: base(DefaultCompilationUnit.DummyCompilationUnit, VoidName)
{
}

4
src/Main/Base/Project/Src/Dom/MemberLookupHelper.cs

@ -508,8 +508,8 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -508,8 +508,8 @@ namespace ICSharpCode.SharpDevelop.Dom
{
if (argument == null) // TODO: Use NullReturnType instead of no return type
return true; // "null" can be passed for any argument
if (expected is GenericReturnType) {
foreach (IReturnType constraint in ((GenericReturnType)expected).TypeParameter.Constraints) {
if (expected.IsGenericReturnType) {
foreach (IReturnType constraint in expected.CastToGenericReturnType().TypeParameter.Constraints) {
if (!ConversionExists(argument, constraint)) {
return false;
}

2
src/Main/Base/Project/Src/Dom/ReflectionLayer/DomPersistence.cs

@ -528,7 +528,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -528,7 +528,7 @@ namespace ICSharpCode.SharpDevelop.Dom
classIndices.Add(pair, externalTypes.Count + classCount);
externalTypes.Add(pair);
}
} else if (rt is GenericReturnType) {
} else if (rt.IsGenericReturnType) {
// ignore
} else if (rt.IsArrayReturnType) {
AddExternalType(rt.CastToArrayReturnType().ArrayElementType, externalTypes, classCount);

2
src/Main/Base/Test/GenericResolverTests.cs

@ -77,7 +77,7 @@ class TestClass { @@ -77,7 +77,7 @@ class TestClass {
Assert.IsTrue(result is MemberResolveResult);
IMethod m = (IMethod)((MemberResolveResult)result).ResolvedMember;
Assert.AreEqual("TestClass", m.ReturnType.FullyQualifiedName);
Assert.AreEqual(1, m.ReturnType.ArrayDimensions);
Assert.AreEqual(1, m.ReturnType.CastToArrayReturnType().ArrayDimensions);
}
[Test]

12
src/Main/Base/Test/MemberLookupHelperTests.cs

@ -33,18 +33,19 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -33,18 +33,19 @@ namespace ICSharpCode.SharpDevelop.Tests
[Test]
public void TypeParameterPassedToBaseClassTest()
{
IReturnType[] stringInt = { ReflectionReturnType.String, ReflectionReturnType.Int };
IReturnType[] stringInt = { msc.SystemTypes.String, msc.SystemTypes.Int32 };
IReturnType rrt = new ConstructedReturnType(DictionaryRT, stringInt);
IReturnType res = MemberLookupHelper.GetTypeParameterPassedToBaseClass(rrt, EnumerableClass, 0);
Assert.AreEqual("System.Collections.Generic.KeyValuePair", res.FullyQualifiedName);
Assert.AreEqual("System.String", res.TypeArguments[0].FullyQualifiedName);
Assert.AreEqual("System.Int32", res.TypeArguments[1].FullyQualifiedName);
ConstructedReturnType resc = res.CastToConstructedReturnType();
Assert.AreEqual("System.String", resc.TypeArguments[0].FullyQualifiedName);
Assert.AreEqual("System.Int32", resc.TypeArguments[1].FullyQualifiedName);
}
[Test]
public void TypeParameterPassedToBaseClassSameClass()
{
IReturnType[] stringArr = { ReflectionReturnType.String };
IReturnType[] stringArr = { msc.SystemTypes.String };
IReturnType rrt = new ConstructedReturnType(EnumerableClass.DefaultReturnType, stringArr);
IReturnType res = MemberLookupHelper.GetTypeParameterPassedToBaseClass(rrt, EnumerableClass, 0);
Assert.AreEqual("System.String", res.FullyQualifiedName);
@ -53,7 +54,8 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -53,7 +54,8 @@ namespace ICSharpCode.SharpDevelop.Tests
[Test]
public void GetCommonType()
{
IReturnType res = MemberLookupHelper.GetCommonType(swf.GetClass("System.Windows.Forms.ToolStripButton").DefaultReturnType,
IReturnType res = MemberLookupHelper.GetCommonType(msc,
swf.GetClass("System.Windows.Forms.ToolStripButton").DefaultReturnType,
swf.GetClass("System.Windows.Forms.ToolStripSeparator").DefaultReturnType);
Assert.AreEqual("System.Windows.Forms.ToolStripItem", res.FullyQualifiedName);
}

2
src/Main/Base/Test/NRefactoryResolverTests.cs

@ -365,7 +365,7 @@ class A { @@ -365,7 +365,7 @@ class A {
";
ResolveResult result = Resolve(program, "TestMethod()", 4);
Assert.IsNotNull(result);
Assert.AreSame(ReflectionReturnType.Void, result.ResolvedType, result.ResolvedType.ToString());
Assert.AreSame(VoidReturnType.Instance, result.ResolvedType, result.ResolvedType.ToString());
Assert.AreEqual(0, result.GetCompletionData(lastPC).Count);
}

7
src/Main/Base/Test/ReflectionLayerTests.cs

@ -12,6 +12,7 @@ using System.Reflection; @@ -12,6 +12,7 @@ using System.Reflection;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.ReflectionLayer;
using NUnit.Framework;
namespace ICSharpCode.SharpDevelop.Tests
@ -102,7 +103,7 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -102,7 +103,7 @@ namespace ICSharpCode.SharpDevelop.Tests
{
IClass c = pc.GetClass("System.Void");
Assert.IsNotNull(c, "System.Void not found");
Assert.AreSame(c.DefaultReturnType, ReflectionReturnType.Void, "ReflectionReturnType.Void is c.DefaultReturnType");
Assert.AreSame(c.DefaultReturnType, VoidReturnType.Instance, "VoidReturnType.Instance is c.DefaultReturnType");
}
class TestClass<A, B> where A : B {
@ -154,8 +155,8 @@ namespace ICSharpCode.SharpDevelop.Tests @@ -154,8 +155,8 @@ namespace ICSharpCode.SharpDevelop.Tests
Assert.AreEqual("IEquatable", m.TypeParameters[0].Constraints[0].Name);
Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].TypeParameterCount);
Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].TypeArguments.Count);
GenericReturnType grt = (GenericReturnType)m.TypeParameters[0].Constraints[0].TypeArguments[0];
Assert.AreEqual(1, m.TypeParameters[0].Constraints[0].CastToConstructedReturnType().TypeArguments.Count);
GenericReturnType grt = (GenericReturnType)m.TypeParameters[0].Constraints[0].CastToConstructedReturnType().TypeArguments[0];
Assert.AreSame(m.TypeParameters[0], grt.TypeParameter);
}
}

Loading…
Cancel
Save