diff --git a/ICSharpCode.NRefactory.Demo/CSDemo.cs b/ICSharpCode.NRefactory.Demo/CSDemo.cs
index a65040678a..6232abb601 100644
--- a/ICSharpCode.NRefactory.Demo/CSDemo.cs
+++ b/ICSharpCode.NRefactory.Demo/CSDemo.cs
@@ -28,8 +28,10 @@ using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
+
using ICSharpCode.NRefactory.CSharp;
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AttributeTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AttributeTests.cs
index 596e02327a..5f7d2a8dc7 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AttributeTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/AttributeTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/BinaryOperatorTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/BinaryOperatorTests.cs
index 773087a852..842e81ae53 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/BinaryOperatorTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/BinaryOperatorTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/CastTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/CastTests.cs
index bfaa52662c..2c4ea461c8 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/CastTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/CastTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConditionalOperatorTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConditionalOperatorTests.cs
index 6d151eebf4..8a4644aab2 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConditionalOperatorTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConditionalOperatorTests.cs
@@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.NRefactory.Semantics;
using NUnit.Framework;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConversionsTest.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConversionsTest.cs
index e03e41689b..e2dce79c72 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConversionsTest.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ConversionsTest.cs
@@ -19,6 +19,8 @@
using System;
using System.Collections;
using System.Collections.Generic;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ExtensionMethodTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ExtensionMethodTests.cs
index 8a8148c9be..c803f01bf6 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ExtensionMethodTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ExtensionMethodTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/InvocationTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/InvocationTests.cs
index b6b8be7016..beef31ae0e 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/InvocationTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/InvocationTests.cs
@@ -18,6 +18,7 @@
using System;
using System.Linq;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LambdaTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LambdaTests.cs
index e3472e8b43..4718bcf49f 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LambdaTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LambdaTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LinqTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LinqTests.cs
index 71e8ec078a..be363e5492 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LinqTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LinqTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LocalTypeInferenceTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LocalTypeInferenceTests.cs
index 7aa0415413..16017e7e54 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LocalTypeInferenceTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/LocalTypeInferenceTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/NameLookupTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/NameLookupTests.cs
index 52aec9ec5b..aa6a05a329 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/NameLookupTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/NameLookupTests.cs
@@ -19,6 +19,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs
index 3ccad4e8cf..7219558bce 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ObjectCreationTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/OverloadResolutionTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/OverloadResolutionTests.cs
index 1838aba0ab..c3367a5094 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/OverloadResolutionTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/OverloadResolutionTests.cs
@@ -21,6 +21,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolveAtLocationTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolveAtLocationTests.cs
index 740bffb80e..5c6b9b88fe 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolveAtLocationTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolveAtLocationTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs
index ee8de8cefc..17280cdebb 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/ResolverTestBase.cs
@@ -21,7 +21,9 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
+
using ICSharpCode.NRefactory.CSharp.Parser;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/TypeInferenceTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/TypeInferenceTests.cs
index 41159c7720..7afb04d737 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/TypeInferenceTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/TypeInferenceTests.cs
@@ -21,6 +21,8 @@ using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using NUnit.Framework;
diff --git a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs
index 58c4799ce2..931c52fa40 100644
--- a/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs
+++ b/ICSharpCode.NRefactory.Tests/CSharp/Resolver/UnsafeCodeTests.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using NUnit.Framework;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.TestCase.cs b/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.TestCase.cs
index ae8a0c8c4a..d7e32a3c1e 100644
--- a/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.TestCase.cs
+++ b/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.TestCase.cs
@@ -120,4 +120,11 @@ namespace ICSharpCode.NRefactory.TypeSystem.TestCase
[PreserveSig()]
int GetNextAssembly(uint dwFlags);
}
+
+ public class ConstantTest
+ {
+ public const int Answer = 42;
+
+ public const string NullString = null;
+ }
}
diff --git a/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.cs b/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.cs
index bbf4e00eb6..8b74b7267d 100644
--- a/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.cs
+++ b/ICSharpCode.NRefactory.Tests/TypeSystem/TypeSystemTests.cs
@@ -20,7 +20,9 @@ using System;
using System.Linq;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
+
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using ICSharpCode.NRefactory.TypeSystem.TestCase;
using NUnit.Framework;
@@ -456,5 +458,23 @@ namespace ICSharpCode.NRefactory.TypeSystem
Assert.IsTrue(m.IsAbstract);
Assert.IsFalse(m.IsVirtual);
}
+
+ [Test]
+ public void ConstantAnswer()
+ {
+ ITypeDefinition type = ctx.GetTypeDefinition(typeof(ConstantTest));
+ IField answer = type.Fields.Single(f => f.Name == "Answer");
+ Assert.IsTrue(answer.IsConst);
+ Assert.AreEqual(42, answer.ConstantValue.Resolve(ctx).ConstantValue);
+ }
+
+ [Test]
+ public void ConstantNullString()
+ {
+ ITypeDefinition type = ctx.GetTypeDefinition(typeof(ConstantTest));
+ IField answer = type.Fields.Single(f => f.Name == "NullString");
+ Assert.IsTrue(answer.IsConst);
+ Assert.IsNull(answer.ConstantValue.Resolve(ctx).ConstantValue);
+ }
}
}
diff --git a/ICSharpCode.NRefactory/CSharp/Analysis/ControlFlow.cs b/ICSharpCode.NRefactory/CSharp/Analysis/ControlFlow.cs
index a8f8edc147..148cf2a7a2 100644
--- a/ICSharpCode.NRefactory/CSharp/Analysis/ControlFlow.cs
+++ b/ICSharpCode.NRefactory/CSharp/Analysis/ControlFlow.cs
@@ -23,6 +23,7 @@ using System.Linq;
using System.Threading;
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Analysis
diff --git a/ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs b/ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs
index c544d2d6c1..a4c18e496c 100644
--- a/ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs
+++ b/ICSharpCode.NRefactory/CSharp/Analysis/DefiniteAssignmentAnalysis.cs
@@ -21,7 +21,9 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
+
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using ICSharpCode.NRefactory.Utils;
diff --git a/ICSharpCode.NRefactory/CSharp/Parser/TypeSystemConvertVisitor.cs b/ICSharpCode.NRefactory/CSharp/Parser/TypeSystemConvertVisitor.cs
index ab96afe447..06103ada65 100644
--- a/ICSharpCode.NRefactory/CSharp/Parser/TypeSystemConvertVisitor.cs
+++ b/ICSharpCode.NRefactory/CSharp/Parser/TypeSystemConvertVisitor.cs
@@ -902,7 +902,7 @@ namespace ICSharpCode.NRefactory.CSharp
ConstantValueBuilder b = new ConstantValueBuilder(parentTypeDefinition, parentMethodDefinition, parentUsingScope, false);
ConstantExpression c = expression.AcceptVisitor(b, null);
if (c == null)
- return null;
+ return new ErrorConstantValue(targetType);
PrimitiveConstantExpression pc = c as PrimitiveConstantExpression;
if (pc != null && pc.Type == targetType) {
// Save memory by directly using a SimpleConstantValue.
diff --git a/ICSharpCode.NRefactory/CSharp/Refactoring/ContextAction/RemoveBackingStore.cs b/ICSharpCode.NRefactory/CSharp/Refactoring/ContextAction/RemoveBackingStore.cs
index 6564afe403..05c6d6e533 100644
--- a/ICSharpCode.NRefactory/CSharp/Refactoring/ContextAction/RemoveBackingStore.cs
+++ b/ICSharpCode.NRefactory/CSharp/Refactoring/ContextAction/RemoveBackingStore.cs
@@ -24,9 +24,10 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
using System;
-using ICSharpCode.NRefactory.TypeSystem;
using System.Linq;
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
+using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Refactoring
{
diff --git a/ICSharpCode.NRefactory/CSharp/Refactoring/RefactoringContext.cs b/ICSharpCode.NRefactory/CSharp/Refactoring/RefactoringContext.cs
index 6d2aa2cf79..9bea623b4c 100644
--- a/ICSharpCode.NRefactory/CSharp/Refactoring/RefactoringContext.cs
+++ b/ICSharpCode.NRefactory/CSharp/Refactoring/RefactoringContext.cs
@@ -26,6 +26,7 @@
using System;
using System.Linq;
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
diff --git a/ICSharpCode.NRefactory/CSharp/Refactoring/TypeSystemAstBuilder.cs b/ICSharpCode.NRefactory/CSharp/Refactoring/TypeSystemAstBuilder.cs
index d33b64b9b8..e00ab28fd1 100644
--- a/ICSharpCode.NRefactory/CSharp/Refactoring/TypeSystemAstBuilder.cs
+++ b/ICSharpCode.NRefactory/CSharp/Refactoring/TypeSystemAstBuilder.cs
@@ -5,7 +5,9 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
+
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using ICSharpCode.NRefactory.Utils;
@@ -514,16 +516,18 @@ namespace ICSharpCode.NRefactory.CSharp.Refactoring
AstNode ConvertField(IField field)
{
FieldDeclaration decl = new FieldDeclaration();
- Modifiers m = GetMemberModifiers(field);
- if (field.IsConst) {
- m &= ~Modifiers.Static;
- m |= Modifiers.Const;
- } else if (field.IsReadOnly) {
- m |= Modifiers.Readonly;
- } else if (field.IsVolatile) {
- m |= Modifiers.Volatile;
- }
- decl.Modifiers = m;
+ if (ShowModifiers) {
+ Modifiers m = GetMemberModifiers(field);
+ if (field.IsConst) {
+ m &= ~Modifiers.Static;
+ m |= Modifiers.Const;
+ } else if (field.IsReadOnly) {
+ m |= Modifiers.Readonly;
+ } else if (field.IsVolatile) {
+ m |= Modifiers.Volatile;
+ }
+ decl.Modifiers = m;
+ }
decl.ReturnType = ConvertTypeReference(field.ReturnType);
Expression initializer = null;
if (field.IsConst && this.ShowConstantValues)
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/AliasNamespaceReference.cs b/ICSharpCode.NRefactory/CSharp/Resolver/AliasNamespaceReference.cs
index 4b59353324..92493038a6 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/AliasNamespaceReference.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/AliasNamespaceReference.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/CSharpAttribute.cs b/ICSharpCode.NRefactory/CSharp/Resolver/CSharpAttribute.cs
index 2533112abc..b0a04c2023 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/CSharpAttribute.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/CSharpAttribute.cs
@@ -21,6 +21,8 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/CSharpResolver.cs b/ICSharpCode.NRefactory/CSharp/Resolver/CSharpResolver.cs
index bcd0b8968b..451030a954 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/CSharpResolver.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/CSharpResolver.cs
@@ -24,6 +24,8 @@ using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using ICSharpCode.NRefactory.Utils;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/CompositeResolveVisitorNavigator.cs b/ICSharpCode.NRefactory/CSharp/Resolver/CompositeResolveVisitorNavigator.cs
index 4378267497..e810c435a7 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/CompositeResolveVisitorNavigator.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/CompositeResolveVisitorNavigator.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ConstantValues.cs b/ICSharpCode.NRefactory/CSharp/Resolver/ConstantValues.cs
index 6d9a1a98ca..c7d55970eb 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ConstantValues.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/ConstantValues.cs
@@ -19,7 +19,9 @@
using System;
using System.Collections.Generic;
using System.Linq;
+
using ICSharpCode.NRefactory.CSharp.Analysis;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
using ICSharpCode.NRefactory.Utils;
@@ -131,6 +133,27 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver.ConstantValues
}
}
+ ///
+ /// Used for constants that could not be converted to IConstantValue.
+ ///
+ [Serializable]
+ public sealed class ErrorConstantValue : Immutable, IConstantValue
+ {
+ ITypeReference type;
+
+ public ErrorConstantValue(ITypeReference type)
+ {
+ if (type == null)
+ throw new ArgumentNullException("type");
+ this.type = type;
+ }
+
+ public ResolveResult Resolve(ITypeResolveContext context)
+ {
+ return new ErrorResolveResult(type.Resolve(context));
+ }
+ }
+
///
/// Increments an integer by a fixed amount without changing the type.
///
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/Conversions.cs b/ICSharpCode.NRefactory/CSharp/Resolver/Conversions.cs
index 7c1ba5ba0b..a1f8876b19 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/Conversions.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/Conversions.cs
@@ -20,6 +20,8 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/DetectSkippableNodesNavigator.cs b/ICSharpCode.NRefactory/CSharp/Resolver/DetectSkippableNodesNavigator.cs
index eef0d07656..454a30bc94 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/DetectSkippableNodesNavigator.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/DetectSkippableNodesNavigator.cs
@@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ErrorResolveResult.cs b/ICSharpCode.NRefactory/CSharp/Resolver/ErrorResolveResult.cs
index d4e6aada06..df0a49b82e 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ErrorResolveResult.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/ErrorResolveResult.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/FindReferencedEntities.cs b/ICSharpCode.NRefactory/CSharp/Resolver/FindReferencedEntities.cs
index 2f6217c8f9..38846458c5 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/FindReferencedEntities.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/FindReferencedEntities.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/FindReferences.cs b/ICSharpCode.NRefactory/CSharp/Resolver/FindReferences.cs
index 8773852fed..2910bf427f 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/FindReferences.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/FindReferences.cs
@@ -20,7 +20,9 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
+
using ICSharpCode.Editor;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/IResolveVisitorNavigator.cs b/ICSharpCode.NRefactory/CSharp/Resolver/IResolveVisitorNavigator.cs
index 17d3cdd23c..7a568cc41f 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/IResolveVisitorNavigator.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/IResolveVisitorNavigator.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ITypeOrNamespaceReference.cs b/ICSharpCode.NRefactory/CSharp/Resolver/ITypeOrNamespaceReference.cs
index 7a0cffb1a9..f5ebaf384a 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ITypeOrNamespaceReference.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/ITypeOrNamespaceReference.cs
@@ -17,6 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/LambdaResolveResult.cs b/ICSharpCode.NRefactory/CSharp/Resolver/LambdaResolveResult.cs
index 2397c7eff8..3dfbccd79d 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/LambdaResolveResult.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/LambdaResolveResult.cs
@@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/MemberLookup.cs b/ICSharpCode.NRefactory/CSharp/Resolver/MemberLookup.cs
index 12c37ed13f..6d174e8c29 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/MemberLookup.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/MemberLookup.cs
@@ -21,6 +21,8 @@ using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/MemberTypeOrNamespaceReference.cs b/ICSharpCode.NRefactory/CSharp/Resolver/MemberTypeOrNamespaceReference.cs
index 01de15dab1..7224459e70 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/MemberTypeOrNamespaceReference.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/MemberTypeOrNamespaceReference.cs
@@ -19,6 +19,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/NodeListResolveVisitorNavigator.cs b/ICSharpCode.NRefactory/CSharp/Resolver/NodeListResolveVisitorNavigator.cs
index 14ed911e7c..6737c10649 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/NodeListResolveVisitorNavigator.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/NodeListResolveVisitorNavigator.cs
@@ -18,6 +18,7 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/OperatorResolveResult.cs b/ICSharpCode.NRefactory/CSharp/Resolver/OperatorResolveResult.cs
index f28af6ccef..524d73451c 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/OperatorResolveResult.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/OperatorResolveResult.cs
@@ -19,6 +19,8 @@
using System;
using System.Collections.Generic;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils;
@@ -104,62 +106,4 @@ namespace ICSharpCode.NRefactory.CSharp.Resolver
return new [] { Condition, True, False };
}
}
-
- ///
- /// Resolve result representing an array access.
- ///
- public class ArrayAccessResolveResult : ResolveResult
- {
- public readonly ResolveResult Array;
- public readonly ResolveResult[] Indices;
-
- public ArrayAccessResolveResult(IType elementType, ResolveResult array, ResolveResult[] indices) : base(elementType)
- {
- if (array == null)
- throw new ArgumentNullException("array");
- if (indices == null)
- throw new ArgumentNullException("indices");
- this.Array = array;
- this.Indices = indices;
- }
-
- public override IEnumerable GetChildResults()
- {
- return new [] { Array }.Concat(Indices);
- }
- }
-
- ///
- /// Resolve result representing an array creation.
- ///
- public class ArrayCreateResolveResult : ResolveResult
- {
- ///
- /// Gets the size arguments.
- ///
- public readonly ResolveResult[] SizeArguments;
-
- ///
- /// Gets the initializer elements.
- /// This field may be null if no initializer was specified.
- ///
- public readonly ResolveResult[] InitializerElements;
-
- readonly object[] constantArray;
-
- public ArrayCreateResolveResult(IType arrayType, ResolveResult[] sizeArguments, ResolveResult[] initializerElements)
- : base(arrayType)
- {
- this.SizeArguments = sizeArguments;
- this.InitializerElements = initializerElements;
- }
-
- public override IEnumerable GetChildResults()
- {
- if (SizeArguments != null && InitializerElements != null)
- return SizeArguments.Concat(InitializerElements);
- else
- return SizeArguments ?? InitializerElements ?? EmptyList.Instance;
- }
- }
}
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/OverloadResolution.cs b/ICSharpCode.NRefactory/CSharp/Resolver/OverloadResolution.cs
index 0a10e40b0c..23a58c554c 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/OverloadResolution.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/OverloadResolution.cs
@@ -22,6 +22,7 @@ using System.Diagnostics;
using System.Linq;
using System.Text;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveAtLocation.cs b/ICSharpCode.NRefactory/CSharp/Resolver/ResolveAtLocation.cs
index d32f45cf5e..3ceb4bd201 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveAtLocation.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/ResolveAtLocation.cs
@@ -18,6 +18,7 @@
using System;
using System.Threading;
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
namespace ICSharpCode.NRefactory.CSharp.Resolver
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs b/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs
index 0b3168a524..dffc6019b8 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/ResolveVisitor.cs
@@ -22,6 +22,8 @@ using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Threading;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/SimpleTypeOrNamespaceReference.cs b/ICSharpCode.NRefactory/CSharp/Resolver/SimpleTypeOrNamespaceReference.cs
index 1f1510ce45..27ecef40f1 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/SimpleTypeOrNamespaceReference.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/SimpleTypeOrNamespaceReference.cs
@@ -19,6 +19,8 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.Utils;
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/TypeInference.cs b/ICSharpCode.NRefactory/CSharp/Resolver/TypeInference.cs
index 1ce6617c5f..da462565ed 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/TypeInference.cs
+++ b/ICSharpCode.NRefactory/CSharp/Resolver/TypeInference.cs
@@ -20,6 +20,8 @@ using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
+
+using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
diff --git a/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj b/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj
index 0ab23d3a44..31fbee8d7e 100644
--- a/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj
+++ b/ICSharpCode.NRefactory/ICSharpCode.NRefactory.csproj
@@ -105,17 +105,14 @@
+
-
-
-
-
+
-
@@ -192,32 +189,37 @@
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -424,6 +426,7 @@
+
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/AmbiguousResolveResult.cs b/ICSharpCode.NRefactory/Semantics/AmbiguousResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/AmbiguousResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/AmbiguousResolveResult.cs
index e8c4a20447..e2fecf1bb9 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/AmbiguousResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/AmbiguousResolveResult.cs
@@ -19,7 +19,7 @@
using System;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents an ambiguous type resolve result.
diff --git a/ICSharpCode.NRefactory/Semantics/ArrayAccessResolveResult.cs b/ICSharpCode.NRefactory/Semantics/ArrayAccessResolveResult.cs
new file mode 100644
index 0000000000..286681eb31
--- /dev/null
+++ b/ICSharpCode.NRefactory/Semantics/ArrayAccessResolveResult.cs
@@ -0,0 +1,50 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using ICSharpCode.NRefactory.TypeSystem;
+using ICSharpCode.NRefactory.Utils;
+
+namespace ICSharpCode.NRefactory.Semantics
+{
+ ///
+ /// Resolve result representing an array access.
+ ///
+ public class ArrayAccessResolveResult : ResolveResult
+ {
+ public readonly ResolveResult Array;
+ public readonly ResolveResult[] Indices;
+
+ public ArrayAccessResolveResult(IType elementType, ResolveResult array, ResolveResult[] indices) : base(elementType)
+ {
+ if (array == null)
+ throw new ArgumentNullException("array");
+ if (indices == null)
+ throw new ArgumentNullException("indices");
+ this.Array = array;
+ this.Indices = indices;
+ }
+
+ public override IEnumerable GetChildResults()
+ {
+ return new [] { Array }.Concat(Indices);
+ }
+ }
+}
diff --git a/ICSharpCode.NRefactory/Semantics/ArrayCreateResolveResult.cs b/ICSharpCode.NRefactory/Semantics/ArrayCreateResolveResult.cs
new file mode 100644
index 0000000000..3ef6e08f64
--- /dev/null
+++ b/ICSharpCode.NRefactory/Semantics/ArrayCreateResolveResult.cs
@@ -0,0 +1,60 @@
+// Copyright (c) AlphaSierraPapa for the SharpDevelop Team
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy of this
+// software and associated documentation files (the "Software"), to deal in the Software
+// without restriction, including without limitation the rights to use, copy, modify, merge,
+// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
+// to whom the Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in all copies or
+// substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
+// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+// DEALINGS IN THE SOFTWARE.
+
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using ICSharpCode.NRefactory.TypeSystem;
+using ICSharpCode.NRefactory.Utils;
+
+namespace ICSharpCode.NRefactory.Semantics
+{
+ ///
+ /// Resolve result representing an array creation.
+ ///
+ public class ArrayCreateResolveResult : ResolveResult
+ {
+ ///
+ /// Gets the size arguments.
+ ///
+ public readonly ResolveResult[] SizeArguments;
+
+ ///
+ /// Gets the initializer elements.
+ /// This field may be null if no initializer was specified.
+ ///
+ public readonly ResolveResult[] InitializerElements;
+
+ readonly object[] constantArray;
+
+ public ArrayCreateResolveResult(IType arrayType, ResolveResult[] sizeArguments, ResolveResult[] initializerElements)
+ : base(arrayType)
+ {
+ this.SizeArguments = sizeArguments;
+ this.InitializerElements = initializerElements;
+ }
+
+ public override IEnumerable GetChildResults()
+ {
+ if (SizeArguments != null && InitializerElements != null)
+ return SizeArguments.Concat(InitializerElements);
+ else
+ return SizeArguments ?? InitializerElements ?? EmptyList.Instance;
+ }
+ }
+}
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ByReferenceResolveResult.cs b/ICSharpCode.NRefactory/Semantics/ByReferenceResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/ByReferenceResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/ByReferenceResolveResult.cs
index d533f4e5b8..5522a0faf7 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ByReferenceResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/ByReferenceResolveResult.cs
@@ -21,7 +21,7 @@ using System.Collections.Generic;
using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents the resolve result of an 'ref x' or 'out x' expression.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ConstantResolveResult.cs b/ICSharpCode.NRefactory/Semantics/ConstantResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/ConstantResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/ConstantResolveResult.cs
index 43c03d0fa6..e4dcd1e091 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ConstantResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/ConstantResolveResult.cs
@@ -19,7 +19,7 @@
using System;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// ResolveResult representing a compile-time constant.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ConversionResolveResult.cs b/ICSharpCode.NRefactory/Semantics/ConversionResolveResult.cs
similarity index 95%
rename from ICSharpCode.NRefactory/CSharp/Resolver/ConversionResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/ConversionResolveResult.cs
index cc3b29f828..225a76c8e3 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ConversionResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/ConversionResolveResult.cs
@@ -18,9 +18,10 @@
using System;
using System.Collections.Generic;
+using ICSharpCode.NRefactory.CSharp.Resolver;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
public class ConversionResolveResult : ResolveResult
{
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/InvocationResolveResult.cs b/ICSharpCode.NRefactory/Semantics/InvocationResolveResult.cs
similarity index 98%
rename from ICSharpCode.NRefactory/CSharp/Resolver/InvocationResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/InvocationResolveResult.cs
index b504ec6d81..2d9a679452 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/InvocationResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/InvocationResolveResult.cs
@@ -20,10 +20,11 @@ using System;
using System.Collections.Generic;
using System.Linq;
+using ICSharpCode.NRefactory.CSharp.Resolver;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents the result of a method invocation.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/LocalResolveResult.cs b/ICSharpCode.NRefactory/Semantics/LocalResolveResult.cs
similarity index 98%
rename from ICSharpCode.NRefactory/CSharp/Resolver/LocalResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/LocalResolveResult.cs
index 57779ab2a6..58db073602 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/LocalResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/LocalResolveResult.cs
@@ -19,7 +19,7 @@
using System;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents a local variable.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/MemberResolveResult.cs b/ICSharpCode.NRefactory/Semantics/MemberResolveResult.cs
similarity index 98%
rename from ICSharpCode.NRefactory/CSharp/Resolver/MemberResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/MemberResolveResult.cs
index bd46c151fb..467e735955 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/MemberResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/MemberResolveResult.cs
@@ -21,7 +21,7 @@ using System.Collections.Generic;
using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents the result of a member invocation.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/MethodGroupResolveResult.cs b/ICSharpCode.NRefactory/Semantics/MethodGroupResolveResult.cs
similarity index 98%
rename from ICSharpCode.NRefactory/CSharp/Resolver/MethodGroupResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/MethodGroupResolveResult.cs
index d783540153..b90f086d06 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/MethodGroupResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/MethodGroupResolveResult.cs
@@ -22,9 +22,11 @@ using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
+
+using ICSharpCode.NRefactory.CSharp.Resolver;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
public class MethodListWithDeclaringType : List
{
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/NamespaceResolveResult.cs b/ICSharpCode.NRefactory/Semantics/NamespaceResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/NamespaceResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/NamespaceResolveResult.cs
index 01dc525a25..c6e2323260 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/NamespaceResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/NamespaceResolveResult.cs
@@ -19,7 +19,7 @@
using System;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents that an expression resolved to a namespace.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveResult.cs b/ICSharpCode.NRefactory/Semantics/ResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/ResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/ResolveResult.cs
index 40a9931e69..40b3bc055c 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/ResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/ResolveResult.cs
@@ -22,7 +22,7 @@ using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.NRefactory.TypeSystem.Implementation;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents the result of resolving an expression.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/TypeOfResolveResult.cs b/ICSharpCode.NRefactory/Semantics/TypeOfResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/TypeOfResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/TypeOfResolveResult.cs
index 23559d501d..0f1d2e50f1 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/TypeOfResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/TypeOfResolveResult.cs
@@ -19,7 +19,7 @@
using System;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents the 'typeof'.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/TypeResolveResult.cs b/ICSharpCode.NRefactory/Semantics/TypeResolveResult.cs
similarity index 97%
rename from ICSharpCode.NRefactory/CSharp/Resolver/TypeResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/TypeResolveResult.cs
index 79815d6565..b66bee211a 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/TypeResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/TypeResolveResult.cs
@@ -19,7 +19,7 @@
using System;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// The resolved expression refers to a type name.
diff --git a/ICSharpCode.NRefactory/CSharp/Resolver/UnknownMemberResolveResult.cs b/ICSharpCode.NRefactory/Semantics/UnknownMemberResolveResult.cs
similarity index 98%
rename from ICSharpCode.NRefactory/CSharp/Resolver/UnknownMemberResolveResult.cs
rename to ICSharpCode.NRefactory/Semantics/UnknownMemberResolveResult.cs
index cc83d8961d..1807881344 100644
--- a/ICSharpCode.NRefactory/CSharp/Resolver/UnknownMemberResolveResult.cs
+++ b/ICSharpCode.NRefactory/Semantics/UnknownMemberResolveResult.cs
@@ -22,7 +22,7 @@ using System.Collections.ObjectModel;
using System.Linq;
using ICSharpCode.NRefactory.TypeSystem;
-namespace ICSharpCode.NRefactory.CSharp.Resolver
+namespace ICSharpCode.NRefactory.Semantics
{
///
/// Represents an unknown member.
diff --git a/ICSharpCode.NRefactory/TypeSystem/IAttribute.cs b/ICSharpCode.NRefactory/TypeSystem/IAttribute.cs
index e7b7947a62..c6d5aa3695 100644
--- a/ICSharpCode.NRefactory/TypeSystem/IAttribute.cs
+++ b/ICSharpCode.NRefactory/TypeSystem/IAttribute.cs
@@ -19,7 +19,9 @@
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
+
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
namespace ICSharpCode.NRefactory.TypeSystem
{
diff --git a/ICSharpCode.NRefactory/TypeSystem/IConstantValue.cs b/ICSharpCode.NRefactory/TypeSystem/IConstantValue.cs
index e3f5b64a49..2af4f80bc6 100644
--- a/ICSharpCode.NRefactory/TypeSystem/IConstantValue.cs
+++ b/ICSharpCode.NRefactory/TypeSystem/IConstantValue.cs
@@ -19,6 +19,7 @@
using System;
using System.Diagnostics.Contracts;
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
namespace ICSharpCode.NRefactory.TypeSystem
{
diff --git a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultAttribute.cs b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultAttribute.cs
index 669bd0759b..825e0d3563 100644
--- a/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultAttribute.cs
+++ b/ICSharpCode.NRefactory/TypeSystem/Implementation/DefaultAttribute.cs
@@ -21,7 +21,9 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
+
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
namespace ICSharpCode.NRefactory.TypeSystem.Implementation
{
diff --git a/ICSharpCode.NRefactory/TypeSystem/Implementation/SimpleConstantValue.cs b/ICSharpCode.NRefactory/TypeSystem/Implementation/SimpleConstantValue.cs
index 0ef06d05f8..784c186439 100644
--- a/ICSharpCode.NRefactory/TypeSystem/Implementation/SimpleConstantValue.cs
+++ b/ICSharpCode.NRefactory/TypeSystem/Implementation/SimpleConstantValue.cs
@@ -18,6 +18,7 @@
using System;
using ICSharpCode.NRefactory.CSharp.Resolver;
+using ICSharpCode.NRefactory.Semantics;
namespace ICSharpCode.NRefactory.TypeSystem.Implementation
{
diff --git a/NRefactory.sln b/NRefactory.sln
index 04649dd469..5b81c02160 100644
--- a/NRefactory.sln
+++ b/NRefactory.sln
@@ -20,6 +20,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.Demo
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Editor", "ICSharpCode.Editor\ICSharpCode.Editor.csproj", "{F054A788-B591-4561-A8BA-AE745BBEB817}"
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.NRefactory.CSharp", "ICSharpCode.NRefactory.CSharp\ICSharpCode.NRefactory.CSharp.csproj", "{53DCA265-3C3C-42F9-B647-F72BA678122B}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -76,6 +78,14 @@ Global
{F054A788-B591-4561-A8BA-AE745BBEB817}.Release|Any CPU.Build.0 = Release|Any CPU
{F054A788-B591-4561-A8BA-AE745BBEB817}.Release|x86.ActiveCfg = Release|Any CPU
{F054A788-B591-4561-A8BA-AE745BBEB817}.Release|x86.Build.0 = Release|Any CPU
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.Build.0 = Debug|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|Any CPU.ActiveCfg = Debug|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.Build.0 = Debug|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Debug|x86.ActiveCfg = Debug|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.Build.0 = Release|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|Any CPU.ActiveCfg = Release|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.Build.0 = Release|x86
+ {53DCA265-3C3C-42F9-B647-F72BA678122B}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE