diff --git a/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs b/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs index 8934913e18..f5c88712e7 100644 --- a/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs +++ b/ICSharpCode.NRefactory.CSharp/Resolver/ResolveVisitor.cs @@ -1310,7 +1310,10 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver ResolveResult IAstVisitor.VisitObjectCreateExpression(ObjectCreateExpression objectCreateExpression) { if (resolverEnabled || !objectCreateExpression.Initializer.IsNull) { - IType type = ResolveType(objectCreateExpression.Type); + var typeResolveResult = Resolve(objectCreateExpression.Type); + if (typeResolveResult.IsError) + return typeResolveResult; + IType type = typeResolveResult.Type; var initializer = objectCreateExpression.Initializer; if (!initializer.IsNull) { diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs index 818ee8a235..0a5c9449d0 100644 --- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs +++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs @@ -43,7 +43,7 @@ class A { } [Test] - public void NonExistingClass() + public void NonExistingClass () { string program = @"class A { void Method() { @@ -51,7 +51,8 @@ class A { } } "; - ResolveResult result = Resolve(program); + ResolveResult result = Resolve (program); + Assert.IsTrue (result.IsError); Assert.AreSame(SpecialType.UnknownType, result.Type); }