diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/TypeSystemConvertVisitorTests.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/TypeSystemConvertVisitorTests.cs
index 0f173aafe8..bc2e4427d0 100644
--- a/src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/TypeSystemConvertVisitorTests.cs
+++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory.Tests/CSharp/Parser/TypeSystemConvertVisitorTests.cs
@@ -125,6 +125,18 @@ namespace ICSharpCode.NRefactory.CSharp.Parser
Assert.AreEqual(1, typeDef.Parts.Count);
var part = typeDef.Parts.Single();
Assert.IsTrue(part.IsPartial);
+ Assert.IsTrue(typeDef.IsPartial);
+ }
+
+ [Test]
+ public void PartialClassWithTwoPartsWithoutPartialModifier()
+ {
+ var syntaxTree = SyntaxTree.Parse("class Test {} class Test {}");
+ syntaxTree.FileName = "a.cs";
+ var content = CreateContent(syntaxTree.ToTypeSystem());
+ var typeDef = content.CreateCompilation().MainAssembly.GetTypeDefinition("", "Test");
+ Assert.AreEqual(2, typeDef.Parts.Count);
+ Assert.IsTrue(typeDef.IsPartial);
}
}
diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs
index 586f63647a..406d6493d7 100644
--- a/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs
+++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/ITypeDefinition.cs
@@ -142,6 +142,11 @@ namespace ICSharpCode.NRefactory.TypeSystem
/// This property is used to speed up the search for extension methods.
bool HasExtensionMethods { get; }
+ ///
+ /// Gets whether this type definition is made up of one or more partial classes.
+ ///
+ bool IsPartial { get; }
+
///
/// Determines how this type is implementing the specified interface member.
///
diff --git a/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs b/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs
index ef874d754d..0be487e420 100644
--- a/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs
+++ b/src/Libraries/NRefactory/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultResolvedTypeDefinition.cs
@@ -477,6 +477,10 @@ namespace ICSharpCode.NRefactory.TypeSystem.Implementation
return Methods.Any(m => m.IsExtensionMethod);
}
+ public bool IsPartial {
+ get { return parts.Length > 1 || parts[0].IsPartial; }
+ }
+
public bool? IsReferenceType {
get {
switch (this.Kind) {