Browse Source

Some fixes suggested by FxCop.

Fixed using the "Suppress message" command on constructors.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@2702 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
9c78cdcfc5
  1. 54
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs
  2. 30
      src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs
  3. 7
      src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/MemberEqualityComparer.cs
  4. 2
      src/Libraries/ICSharpCode.Build.Tasks/Project/FxCop.cs
  5. 1
      src/Main/Base/Project/Src/Project/BuildEngine.cs
  6. 10
      src/Main/Base/Project/Src/Project/MSBuildEngine.cs
  7. 52
      src/Main/Base/Test/GetElementByReflectionNameTests.cs
  8. 1
      src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
  9. 2
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/BuildJob.cs
  10. 1
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/Configuration/AssemblyInfo.cs
  11. 1
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/EventSource.cs
  12. 3
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/ICSharpCode.SharpDevelop.BuildWorker.csproj
  13. 14
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/Interprocess/HostProcess.cs
  14. 5
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/Interprocess/PacketSender.cs
  15. 13
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/Interprocess/WorkerProcess.cs
  16. 12
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/Program.cs
  17. 3
      src/Main/ICSharpCode.SharpDevelop.BuildWorker/WorkerManager.cs
  18. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/ICSharpCode.SharpDevelop.Dom.csproj
  19. 7
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs
  20. 54
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs
  21. 21
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/FilePosition.cs
  22. 34
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/FusionNative.cs
  23. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/CombinedReturnType.cs
  24. 11
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/DefaultClass.cs
  25. 3
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/DefaultMethod.cs
  26. 40
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Interfaces/Region.cs
  27. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionClass.cs
  28. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionMethod.cs
  29. 139
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/ExpressionFinder.cs
  30. 67
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs

54
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/BooAmbience.cs

@ -120,7 +120,7 @@ namespace Grunwald.BooBinding @@ -120,7 +120,7 @@ namespace Grunwald.BooBinding
{
string ret = "";
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
ret += "<i>";
}
if (decoration.IsStatic) {
@ -132,7 +132,7 @@ namespace Grunwald.BooBinding @@ -132,7 +132,7 @@ namespace Grunwald.BooBinding
} else if (decoration.IsNew) {
ret += "new ";
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
ret += "</i>";
}
return ret;
@ -145,7 +145,7 @@ namespace Grunwald.BooBinding @@ -145,7 +145,7 @@ namespace Grunwald.BooBinding
builder.Append(ConvertAccessibility(c.Modifiers));
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -166,7 +166,7 @@ namespace Grunwald.BooBinding @@ -166,7 +166,7 @@ namespace Grunwald.BooBinding
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}
@ -192,7 +192,7 @@ namespace Grunwald.BooBinding @@ -192,7 +192,7 @@ namespace Grunwald.BooBinding
builder.Append(' ');
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -202,7 +202,7 @@ namespace Grunwald.BooBinding @@ -202,7 +202,7 @@ namespace Grunwald.BooBinding
builder.Append(c.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
if (ShowTypeParameterList && c.TypeParameters.Count > 0) {
@ -216,18 +216,18 @@ namespace Grunwald.BooBinding @@ -216,18 +216,18 @@ namespace Grunwald.BooBinding
if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append(" (");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
foreach(IMethod m in c.Methods) {
if (m.Name != "Invoke") continue;
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) builder.Append(", ");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
}
builder.Append(')');
@ -271,7 +271,7 @@ namespace Grunwald.BooBinding @@ -271,7 +271,7 @@ namespace Grunwald.BooBinding
builder.Append(ConvertAccessibility(field.Modifiers));
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -287,11 +287,11 @@ namespace Grunwald.BooBinding @@ -287,11 +287,11 @@ namespace Grunwald.BooBinding
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -301,7 +301,7 @@ namespace Grunwald.BooBinding @@ -301,7 +301,7 @@ namespace Grunwald.BooBinding
builder.Append(field.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -334,7 +334,7 @@ namespace Grunwald.BooBinding @@ -334,7 +334,7 @@ namespace Grunwald.BooBinding
}
builder.Append("self");
} else {
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
if (UseFullyQualifiedMemberNames) {
@ -342,22 +342,22 @@ namespace Grunwald.BooBinding @@ -342,22 +342,22 @@ namespace Grunwald.BooBinding
} else {
builder.Append(property.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
}
if (ShowParameterList && property.Parameters.Count > 0) {
builder.Append('[');
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
for (int i = 0; i < property.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(property.Parameters[i]));
if (i + 1 < property.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
builder.Append(']');
@ -396,7 +396,7 @@ namespace Grunwald.BooBinding @@ -396,7 +396,7 @@ namespace Grunwald.BooBinding
builder.Append("event ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -406,7 +406,7 @@ namespace Grunwald.BooBinding @@ -406,7 +406,7 @@ namespace Grunwald.BooBinding
builder.Append(e.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -435,7 +435,7 @@ namespace Grunwald.BooBinding @@ -435,7 +435,7 @@ namespace Grunwald.BooBinding
builder.Append("def ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -449,7 +449,7 @@ namespace Grunwald.BooBinding @@ -449,7 +449,7 @@ namespace Grunwald.BooBinding
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -464,15 +464,15 @@ namespace Grunwald.BooBinding @@ -464,15 +464,15 @@ namespace Grunwald.BooBinding
if (ShowParameterList) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
builder.Append(')');
@ -539,7 +539,7 @@ namespace Grunwald.BooBinding @@ -539,7 +539,7 @@ namespace Grunwald.BooBinding
{
StringBuilder builder = new StringBuilder();
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -551,7 +551,7 @@ namespace Grunwald.BooBinding @@ -551,7 +551,7 @@ namespace Grunwald.BooBinding
builder.Append("*");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}

30
src/AddIns/Misc/CodeAnalysis/Src/FxCopLogger.cs

@ -31,23 +31,8 @@ namespace ICSharpCode.CodeAnalysis @@ -31,23 +31,8 @@ namespace ICSharpCode.CodeAnalysis
this.engineWorker = engineWorker;
}
public LoggerVerbosity Verbosity {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public string Parameters {
get {
throw new NotImplementedException();
}
set {
throw new NotImplementedException();
}
}
public LoggerVerbosity Verbosity { get; set; }
public string Parameters { get; set; }
IEventSource eventSource;
@ -84,10 +69,19 @@ namespace ICSharpCode.CodeAnalysis @@ -84,10 +69,19 @@ namespace ICSharpCode.CodeAnalysis
string message, bool isWarning,
string category, string checkId, string subcategory)
{
LoggingService.Debug("Got " + (isWarning ? "warning" : "error") + ":\n"
+ " file: " + file + "\n"
+ " line: " + lineNumber + ", col: " + columnNumber + "\n"
+ " message: " + message + "\n"
+ " category: " + category + "\n"
+ " checkId: " + checkId + "\n"
+ " subcategory: " + subcategory);
string[] moreData = (subcategory ?? "").Split('|');
BuildError err = engineWorker.CurrentErrorOrWarning;
if (FileUtility.IsValidPath(file) &&
Path.GetFileName(file) == "SharpDevelop.CodeAnalysis.targets") {
Path.GetFileName(file) == "SharpDevelop.CodeAnalysis.targets")
{
err.FileName = null;
}
IProject project = ProjectService.GetProject(engineWorker.CurrentProjectFile);

7
src/AddIns/Misc/ResourceToolkit/Project/Src/Resolver/MemberEqualityComparer.cs

@ -22,7 +22,7 @@ namespace Hornung.ResourceToolkit.Resolver @@ -22,7 +22,7 @@ namespace Hornung.ResourceToolkit.Resolver
if (x == null || y == null) {
return false;
}
if (x.Region.CompareTo(y.Region) != 0) {
if (x.Region != y.Region) {
return false;
}
IComparer<string> nameComparer;
@ -41,10 +41,7 @@ namespace Hornung.ResourceToolkit.Resolver @@ -41,10 +41,7 @@ namespace Hornung.ResourceToolkit.Resolver
if (obj == null) {
return 0;
}
return obj.Region.BeginLine ^
obj.Region.BeginColumn ^
obj.Region.EndLine ^
obj.Region.EndColumn ^
return obj.Region.GetHashCode() ^
obj.FullyQualifiedName.GetHashCode();
}
}

2
src/Libraries/ICSharpCode.Build.Tasks/Project/FxCop.cs

@ -166,6 +166,8 @@ namespace ICSharpCode.Build.Tasks @@ -166,6 +166,8 @@ namespace ICSharpCode.Build.Tasks
if (parent.Name == "Member" || parent.Name == "Type" || parent.Name == "Namespace") {
if (memberName == null)
memberName = ((XmlElement)parent).GetAttribute("Name");
else if (memberName.StartsWith(".ctor") || memberName.StartsWith(".cctor"))
memberName = ((XmlElement)parent).GetAttribute("Name") + ".#" + memberName.Substring(1);
else
memberName = ((XmlElement)parent).GetAttribute("Name") + "." + memberName;
}

1
src/Main/Base/Project/Src/Project/BuildEngine.cs

@ -437,7 +437,6 @@ namespace ICSharpCode.SharpDevelop.Project @@ -437,7 +437,6 @@ namespace ICSharpCode.SharpDevelop.Project
void ReportMessage(BuildNode source, string message)
{
Console.WriteLine(source.project.Name + " reports " + message);
bool hasOutputLock;
lock (this) {
if (nodeWithOutputLock == null) {

10
src/Main/Base/Project/Src/Project/MSBuildEngine.cs

@ -165,9 +165,7 @@ namespace ICSharpCode.SharpDevelop.Project @@ -165,9 +165,7 @@ namespace ICSharpCode.SharpDevelop.Project
SharpDevelopLogger logger = new SharpDevelopLogger(this);
settings.Logger.Add(logger);
foreach (string compileTaskName in MSBuildEngine.CompileTaskNames) {
InterestingTasks.Add(compileTaskName);
}
MSBuildEngine.CompileTaskNames.Foreach(InterestingTasks.Add);
foreach (IMSBuildAdditionalLogger loggerProvider in MSBuildEngine.AdditionalMSBuildLoggers) {
settings.Logger.Add(loggerProvider.CreateLogger(this));
}
@ -190,12 +188,10 @@ namespace ICSharpCode.SharpDevelop.Project @@ -190,12 +188,10 @@ namespace ICSharpCode.SharpDevelop.Project
if (!(ReportAllTaskStartedEvents && ReportAllTaskFinishedEvents)) {
// just some TaskStarted & TaskFinished events should be reported
foreach (string taskName in InterestingTasks) {
job.InterestingTaskNames.Add(taskName);
}
InterestingTasks.Foreach(job.InterestingTaskNames.Add);
}
job.AdditionalImports.AddRange(additionalTargetFiles);
additionalTargetFiles.Foreach(job.AdditionalImports.Add);
BuildPropertyGroup pg = new BuildPropertyGroup();
MSBuildBasedProject.InitializeMSBuildProjectProperties(pg);

52
src/Main/Base/Test/GetElementByReflectionNameTests.cs

@ -0,0 +1,52 @@ @@ -0,0 +1,52 @@
// <file>
// <copyright see="prj:///doc/copyright.txt"/>
// <license see="prj:///doc/license.txt"/>
// <author name="Daniel Grunwald"/>
// <version>$Revision$</version>
// </file>
using System;
using System.Reflection;
using NUnit.Framework;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.SharpDevelop.Tests
{
[TestFixture]
public class GetElementByReflectionNameTests
{
IProjectContent mscorlib = ParserService.DefaultProjectContentRegistry.Mscorlib;
void TestClass(Type type)
{
Assert.AreSame(typeof(object).Assembly, type.Assembly);
IClass c = (IClass)mscorlib.GetElement(type.FullName);
Assert.AreEqual(type.FullName, c.DotNetName);
}
[Test]
public void TestClasses()
{
TestClass(typeof(object));
TestClass(typeof(Environment.SpecialFolder));
TestClass(typeof(Nullable));
TestClass(typeof(Nullable<>));
}
void TestMember(string fullName)
{
AbstractMember d = (AbstractMember)mscorlib.GetElement(fullName);
Assert.AreEqual(fullName, d.DocumentationTag.Substring(2));
}
[Test]
public void TestConstructor()
{
TestMember("System.Collections.ObjectModel.KeyedCollection`2.#ctor");
TestMember("System.Collections.ObjectModel.KeyedCollection`2.#ctor(System.Collections.Generic.IEqualityComparer{`0},System.Int32)");
TestMember("System.Runtime.InteropServices.CurrencyWrapper.#ctor(System.Decimal)");
TestMember("System.Runtime.InteropServices.CurrencyWrapper.#ctor(System.Object)");
}
}
}

1
src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj

@ -56,6 +56,7 @@ @@ -56,6 +56,7 @@
<Compile Include="CSharpExpressionFinderTests.cs" />
<Compile Include="ExceptionClassOverridesTestFixture.cs" />
<Compile Include="GenerateOverrideMethodTests.cs" />
<Compile Include="GetElementByReflectionNameTests.cs" />
<Compile Include="NRefactoryResolverTests.cs" />
<Compile Include="CollectionClassOverridesTestFixture.cs" />
<Compile Include="OverridableMethodsTestFixture.cs" />

2
src/Main/ICSharpCode.SharpDevelop.BuildWorker/BuildJob.cs

@ -38,7 +38,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -38,7 +38,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
List<string> additionalImports = new List<string>();
public List<string> AdditionalImports {
public IList<string> AdditionalImports {
get { return additionalImports; }
}

1
src/Main/ICSharpCode.SharpDevelop.BuildWorker/Configuration/AssemblyInfo.cs

@ -14,3 +14,4 @@ using System.Runtime.CompilerServices; @@ -14,3 +14,4 @@ using System.Runtime.CompilerServices;
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
[assembly: CLSCompliant(true)]

1
src/Main/ICSharpCode.SharpDevelop.BuildWorker/EventSource.cs

@ -48,6 +48,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -48,6 +48,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
public event AnyEventHandler AnyEventRaised;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")]
public void RaiseEvent(BuildEventArgs e)
{
if (e is BuildStatusEventArgs) {

3
src/Main/ICSharpCode.SharpDevelop.BuildWorker/ICSharpCode.SharpDevelop.BuildWorker.csproj

@ -16,6 +16,8 @@ @@ -16,6 +16,8 @@
<AssemblyOriginatorKeyFile>..\ICSharpCode.SharpDevelop.snk</AssemblyOriginatorKeyFile>
<DelaySign>False</DelaySign>
<AssemblyOriginatorKeyMode>File</AssemblyOriginatorKeyMode>
<RunCodeAnalysis>False</RunCodeAnalysis>
<CodeAnalysisRules>-Microsoft.Globalization#CA1303</CodeAnalysisRules>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
@ -64,6 +66,7 @@ @@ -64,6 +66,7 @@
<Compile Include="Program.cs" />
<Compile Include="WorkerManager.cs" />
<None Include="app.config" />
<Content Include="ICSharpCode.SharpDevelop.BuildWorker.cd" />
</ItemGroup>
<ItemGroup>
<Folder Include="Configuration" />

14
src/Main/ICSharpCode.SharpDevelop.BuildWorker/Interprocess/HostProcess.cs

@ -7,23 +7,28 @@ @@ -7,23 +7,28 @@
using System;
using System.Diagnostics;
using System.Globalization;
using System.IO;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Threading;
using System.Reflection;
using System.Threading;
namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
{
/// <summary>
/// Used in the worker process to refer to the host.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable")]
public class HostProcess
{
object workerObject;
readonly object workerObject;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters")]
public HostProcess(object workerObject)
{
if (workerObject == null)
throw new ArgumentNullException("workerObject");
this.workerObject = workerObject;
}
@ -38,7 +43,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess @@ -38,7 +43,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
public void WorkerProcessMain(string argument)
{
int port = int.Parse(argument);
int port = int.Parse(argument, CultureInfo.InvariantCulture);
client = new TcpClient();
client.Connect(new IPEndPoint(IPAddress.Loopback, port));
@ -82,6 +87,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess @@ -82,6 +87,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
void OnPacketReceived(object sender, PacketReceivedEventArgs e)
{
Program.Log("OnPacketReceived");

5
src/Main/ICSharpCode.SharpDevelop.BuildWorker/Interprocess/PacketSender.cs

@ -50,7 +50,10 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess @@ -50,7 +50,10 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
} while (c > 0);
try {
targetStream.Write(buffer, 0, buffer.Length);
} catch (Exception ex) {
} catch (IOException ex) {
ICSharpCode.SharpDevelop.BuildWorker.Program.Log(ex.ToString());
OnWriteFailed();
} catch (ObjectDisposedException ex) {
ICSharpCode.SharpDevelop.BuildWorker.Program.Log(ex.ToString());
OnWriteFailed();
}

13
src/Main/ICSharpCode.SharpDevelop.BuildWorker/Interprocess/WorkerProcess.cs

@ -9,6 +9,7 @@ using System; @@ -9,6 +9,7 @@ using System;
using System.Diagnostics;
using System.Reflection;
using System.Net;
using System.Globalization;
using System.Net.Sockets;
using System.IO;
using System.Runtime.Serialization.Formatters;
@ -21,14 +22,15 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess @@ -21,14 +22,15 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
/// <summary>
/// Manages a worker process that communicates with the host using a local TCP connection.
/// </summary>
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable")]
public sealed class WorkerProcess
{
object hostObject;
readonly object hostObject;
public WorkerProcess(IHostObject hostObject)
{
if (hostObject == null)
throw new ArgumentException("hostObject");
throw new ArgumentNullException("hostObject");
this.hostObject = hostObject;
}
@ -41,9 +43,12 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess @@ -41,9 +43,12 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
public void Start(ProcessStartInfo info)
{
if (info == null)
throw new ArgumentNullException("info");
listener = new TcpListener(IPAddress.Loopback, 0);
listener.Start();
string argument = ((IPEndPoint)listener.LocalEndpoint).Port.ToString();
string argument = ((IPEndPoint)listener.LocalEndpoint).Port.ToString(CultureInfo.InvariantCulture);
string oldArguments = info.Arguments;
info.Arguments += " " + argument;
@ -217,7 +222,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess @@ -217,7 +222,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker.Interprocess
{
target.GetType().InvokeMember(MethodName,
BindingFlags.InvokeMethod | BindingFlags.Public | BindingFlags.Instance,
null, target, Arguments);
null, target, Arguments, CultureInfo.InvariantCulture);
}
}
}

12
src/Main/ICSharpCode.SharpDevelop.BuildWorker/Program.cs

@ -25,6 +25,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -25,6 +25,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
BuildJob currentJob;
bool requestCancellation;
[STAThread]
internal static void Main(string[] args)
{
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(AppDomain_CurrentDomain_UnhandledException);
@ -65,6 +66,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -65,6 +66,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
return info;
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1300:SpecifyMessageBoxOptions")]
internal static void ShowMessageBox(string text)
{
System.Windows.Forms.MessageBox.Show(text, "SharpDevelop Build Worker Process");
@ -80,6 +82,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -80,6 +82,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
}
// Called with CallMethodOnWorker
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void StartBuild(BuildJob job)
{
if (job == null)
@ -103,6 +106,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -103,6 +106,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
}
// Called with CallMethodOnWorker
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void CancelBuild()
{
lock (this) {
@ -112,6 +116,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -112,6 +116,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
Engine engine;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
void RunThread()
{
Program.Log("In build thread");
@ -176,11 +181,6 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -176,11 +181,6 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
logger.Shutdown();
}
engine.UnregisterAllLoggers();
} catch (Exception ex) {
if (WorkerManager.ShowError != null)
WorkerManager.ShowError(ex);
else
Program.ShowMessageBox(ex.ToString());
} finally {
lock (this) {
currentJob = null;
@ -423,8 +423,8 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -423,8 +423,8 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
}
#endif
[Serializable]
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1064:ExceptionsShouldBePublic")]
sealed class BuildCancelException : Exception
{
}

3
src/Main/ICSharpCode.SharpDevelop.BuildWorker/WorkerManager.cs

@ -216,6 +216,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -216,6 +216,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
}
// Called with CallMethodOnHost
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void ReportEvent(BuildEventArgs e)
{
BuildRun buildRun = currentBuildRun;
@ -225,6 +226,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -225,6 +226,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
}
// Called with CallMethodOnHost
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
public void BuildDone(bool success)
{
BuildRun buildRun = Interlocked.Exchange(ref currentBuildRun, null);
@ -238,6 +240,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker @@ -238,6 +240,7 @@ namespace ICSharpCode.SharpDevelop.BuildWorker
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")]
public void ReportException(Exception ex)
{
// shutdown worker if it produced an exception

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/ICSharpCode.SharpDevelop.Dom.csproj

@ -21,6 +21,8 @@ @@ -21,6 +21,8 @@
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<RunCodeAnalysis>False</RunCodeAnalysis>
<CodeAnalysisRules>-Microsoft.Design#CA1002;-Microsoft.Design#CA1063;-Microsoft.Performance#CA1800;-Microsoft.Security#CA2104</CodeAnalysisRules>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<IntermediateOutputPath>obj\Debug\</IntermediateOutputPath>

7
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Ambience.cs

@ -44,7 +44,8 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -44,7 +44,8 @@ namespace ICSharpCode.SharpDevelop.Dom
/// Show the inheritance declaration
/// </summary>
ShowInheritanceList = 0x40,
IncludeHTMLMarkup = 0x80,
IncludeHtmlMarkup = 0x80,
/// <summary>
/// Show the return type
/// </summary>
@ -163,9 +164,9 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -163,9 +164,9 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public bool IncludeHTMLMarkup {
public bool IncludeHtmlMarkup {
get {
return (conversionFlags & ConversionFlags.IncludeHTMLMarkup) == ConversionFlags.IncludeHTMLMarkup;
return (conversionFlags & ConversionFlags.IncludeHtmlMarkup) == ConversionFlags.IncludeHtmlMarkup;
}
}

54
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CSharp/CSharpAmbience.cs

@ -52,7 +52,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -52,7 +52,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
{
string ret = "";
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
ret += "<i>";
}
@ -68,7 +68,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -68,7 +68,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
ret += "new ";
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
ret += "</i>";
}
@ -82,7 +82,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -82,7 +82,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(ConvertAccessibility(c.Modifiers));
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -103,7 +103,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -103,7 +103,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}
@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -147,7 +147,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -147,7 +147,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(c.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
if (ShowTypeParameterList && c.TypeParameters.Count > 0) {
@ -161,18 +161,18 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -161,18 +161,18 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append(" (");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
foreach(IMethod m in c.Methods) {
if (m.Name != "Invoke") continue;
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) builder.Append(", ");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
}
builder.Append(')');
@ -207,7 +207,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -207,7 +207,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(ConvertAccessibility(field.Modifiers));
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -229,7 +229,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -229,7 +229,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}
@ -238,7 +238,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -238,7 +238,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(' ');
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -248,7 +248,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -248,7 +248,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(field.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -279,7 +279,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -279,7 +279,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
builder.Append("this");
} else {
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
if (UseFullyQualifiedMemberNames) {
@ -287,22 +287,22 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -287,22 +287,22 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
} else {
builder.Append(property.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
}
if (property.Parameters.Count > 0 && ShowParameterList) {
builder.Append(property.IsIndexer ? '[' : '(');
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
for (int i = 0; i < property.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(property.Parameters[i]));
if (i + 1 < property.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
builder.Append(property.IsIndexer ? ']' : ')');
@ -343,7 +343,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -343,7 +343,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(' ');
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -353,7 +353,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -353,7 +353,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(e.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -376,7 +376,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -376,7 +376,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append(' ');
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -394,7 +394,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -394,7 +394,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -409,17 +409,17 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -409,17 +409,17 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
if (ShowParameterList) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
if (m.IsExtensionMethod) builder.Append("this ");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
builder.Append(')');
@ -494,7 +494,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -494,7 +494,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
{
StringBuilder builder = new StringBuilder();
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -506,7 +506,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp @@ -506,7 +506,7 @@ namespace ICSharpCode.SharpDevelop.Dom.CSharp
builder.Append("params ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}

21
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/FilePosition.cs

@ -10,7 +10,7 @@ using ICSharpCode.NRefactory; @@ -10,7 +10,7 @@ using ICSharpCode.NRefactory;
namespace ICSharpCode.SharpDevelop.Dom
{
public struct FilePosition
public struct FilePosition : IEquatable<FilePosition>
{
string filename;
Location position;
@ -92,14 +92,27 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -92,14 +92,27 @@ namespace ICSharpCode.SharpDevelop.Dom
public override bool Equals(object obj)
{
if (!(obj is FilePosition)) return false;
FilePosition b = (FilePosition)obj;
return this.FileName == b.FileName && this.Position == b.Position;
return obj is FilePosition && Equals((FilePosition)obj);
}
public bool Equals(FilePosition other)
{
return this.FileName == other.FileName && this.Position == other.Position;
}
public override int GetHashCode()
{
return filename.GetHashCode() ^ position.GetHashCode();
}
public static bool operator ==(FilePosition lhs, FilePosition rhs)
{
return lhs.Equals(rhs);
}
public static bool operator !=(FilePosition lhs, FilePosition rhs)
{
return !lhs.Equals(rhs);
}
}
}

34
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/FusionNative.cs

@ -192,11 +192,11 @@ namespace MSjogren.GacTool.FusionNative @@ -192,11 +192,11 @@ namespace MSjogren.GacTool.FusionNative
}
internal class Fusion
internal static class Fusion
{
[DllImport("fusion.dll", CharSet=CharSet.Auto)]
internal static extern int CreateAssemblyCache(out IAssemblyCache ppAsmCache,
uint dwReserved);
uint dwReserved);
//
@ -206,20 +206,20 @@ namespace MSjogren.GacTool.FusionNative @@ -206,20 +206,20 @@ namespace MSjogren.GacTool.FusionNative
//
[DllImport("fusion.dll", CharSet=CharSet.Auto)]
internal static extern int CreateAssemblyEnum(out IAssemblyEnum ppEnum,
IApplicationContext pAppCtx,
IAssemblyName pName,
uint dwFlags,
int pvReserved);
IApplicationContext pAppCtx,
IAssemblyName pName,
uint dwFlags,
int pvReserved);
[DllImport("fusion.dll", CharSet=CharSet.Auto)]
internal static extern int CreateAssemblyNameObject(out IAssemblyName ppName,
string szAssemblyName,
uint dwFlags,
int pvReserved);
string szAssemblyName,
uint dwFlags,
int pvReserved);
[DllImport("fusion.dll", CharSet=CharSet.Auto)]
internal static extern int CreateHistoryReader(string wzFilePath,
out IHistoryReader ppHistReader);
out IHistoryReader ppHistReader);
// Retrieves the path of the ApplicationHistory folder, typically
// Documents and Settings\<user>\Local Settings\Application Data\ApplicationHistory
@ -230,7 +230,7 @@ namespace MSjogren.GacTool.FusionNative @@ -230,7 +230,7 @@ namespace MSjogren.GacTool.FusionNative
//
[DllImport("fusion.dll", CharSet=CharSet.Unicode)]
internal static extern int GetHistoryFileDirectory([MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzDir,
ref uint pdwSize);
ref uint pdwSize);
[DllImport("fusion.dll")]
internal static extern int NukeDownloadedCache();
@ -238,12 +238,12 @@ namespace MSjogren.GacTool.FusionNative @@ -238,12 +238,12 @@ namespace MSjogren.GacTool.FusionNative
// ?????
[DllImport("fusion.dll")]
internal static extern int CreateApplicationContext(out IApplicationContext ppAppContext,
uint dw);
uint dw);
[DllImport("fusion.dll")]
internal static extern int GetCachePath(uint flags,
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzDir,
ref uint pdwSize);
[MarshalAs(UnmanagedType.LPWStr)] StringBuilder wzDir,
ref uint pdwSize);
public static string GetGacPath()
{
@ -267,9 +267,9 @@ namespace MSjogren.GacTool.FusionNative @@ -267,9 +267,9 @@ namespace MSjogren.GacTool.FusionNative
//
[DllImport("shfusion.dll", CharSet=CharSet.Unicode)]
internal static extern uint PolicyManager(IntPtr hWndParent,
string pwzFullyQualifiedAppPath,
string pwzAppName,
int dwFlags);
string pwzFullyQualifiedAppPath,
string pwzAppName,
int dwFlags);
}
}

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/CombinedReturnType.cs

@ -40,7 +40,7 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -40,7 +40,7 @@ namespace ICSharpCode.SharpDevelop.Dom
unchecked {
int res = 0;
foreach (IReturnType rt in baseTypes) {
res *= 27;
res *= 1300027;
res += rt.GetHashCode();
}
return res;

11
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/DefaultClass.cs

@ -191,10 +191,17 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -191,10 +191,17 @@ namespace ICSharpCode.SharpDevelop.Dom
public override string DotNetName {
get {
string fullName;
if (this.DeclaringType != null) {
fullName = this.DeclaringType.DotNetName + "+" + this.Name;
} else {
fullName = this.FullyQualifiedName;
}
IList<ITypeParameter> typeParameters = this.TypeParameters;
if (typeParameters == null || typeParameters.Count == 0) {
return FullyQualifiedName;
return fullName;
} else {
return FullyQualifiedName + "`" + typeParameters.Count;
return fullName + "`" + typeParameters.Count;
}
}
}

3
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Implementations/DefaultMethod.cs

@ -31,6 +31,9 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -31,6 +31,9 @@ namespace ICSharpCode.SharpDevelop.Dom
/// </summary>
public static Constructor CreateDefault(IClass c)
{
if (c == null)
throw new ArgumentNullException("c");
Constructor con = new Constructor(ModifierEnum.Public, c.Region, c.Region, c);
con.Documentation = "Default constructor of " + c.Name;
return con;

40
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/Interfaces/Region.cs

@ -11,7 +11,7 @@ using Location = ICSharpCode.NRefactory.Location; @@ -11,7 +11,7 @@ using Location = ICSharpCode.NRefactory.Location;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public struct DomRegion : IComparable, IComparable<DomRegion>
public struct DomRegion : IEquatable<DomRegion>
{
readonly int beginLine;
readonly int endLine;
@ -102,26 +102,32 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -102,26 +102,32 @@ namespace ICSharpCode.SharpDevelop.Dom
endColumn);
}
public int CompareTo(DomRegion value)
public override bool Equals(object obj)
{
int cmp;
if (0 != (cmp = (BeginLine - value.BeginLine))) {
return cmp;
}
if (0 != (cmp = (BeginColumn - value.BeginColumn))) {
return cmp;
}
if (0 != (cmp = (EndLine - value.EndLine))) {
return cmp;
return obj is DomRegion && Equals((DomRegion)obj);
}
public override int GetHashCode()
{
unchecked {
return BeginColumn + 1100009 * BeginLine + 1200007 * BeginColumn + 1300021 * EndColumn;
}
return EndColumn - value.EndColumn;
}
int IComparable.CompareTo(object value) {
return CompareTo((DomRegion)value);
public bool Equals(DomRegion other)
{
return BeginLine == other.BeginLine && BeginColumn == other.BeginColumn
&& EndLine == other.EndLine && EndColumn == other.EndColumn;
}
public static bool operator ==(DomRegion lhs, DomRegion rhs)
{
return lhs.Equals(rhs);
}
public static bool operator !=(DomRegion lhs, DomRegion rhs)
{
return !lhs.Equals(rhs);
}
}
}

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionClass.cs

@ -174,7 +174,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ReflectionLayer @@ -174,7 +174,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ReflectionLayer
InitMembers(type);
}
internal void AddConstraintsFromType(ITypeParameter tp, Type type)
internal static void AddConstraintsFromType(ITypeParameter tp, Type type)
{
foreach (Type constraint in type.GetGenericParameterConstraints()) {
if (tp.Method != null) {

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionMethod.cs

@ -45,7 +45,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ReflectionLayer @@ -45,7 +45,7 @@ namespace ICSharpCode.SharpDevelop.Dom.ReflectionLayer
}
int i = 0;
foreach (Type g in methodBase.GetGenericArguments()) {
declaringType.AddConstraintsFromType(this.TypeParameters[i++], g);
ReflectionClass.AddConstraintsFromType(this.TypeParameters[i++], g);
}
}

139
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/ExpressionFinder.cs

@ -68,8 +68,12 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -68,8 +68,12 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
}
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "0#")]
public ExpressionResult FindFullExpression(string inText, int offset)
{
if (inText == null)
throw new ArgumentNullException("inText");
string expressionBeforeOffset = FindExpressionInternal(inText, offset + 1);
if (expressionBeforeOffset == null || expressionBeforeOffset.Length == 0)
return CreateResult(null);
@ -101,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -101,7 +105,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
// Like VBNetFormattingStrategy.SearchBracketForward, but operates on a string.
private int SearchBracketForward(string text, int offset, char openBracket, char closingBracket)
static int SearchBracketForward(string text, int offset, char openBracket, char closingBracket)
{
bool inString = false;
bool inComment = false;
@ -136,6 +140,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -136,6 +140,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
/// </example>
public string RemoveLastPart(string expression)
{
if (expression == null)
throw new ArgumentNullException("expression");
text = expression;
offset = text.Length - 1;
ReadNextToken();
@ -148,6 +155,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -148,6 +155,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
int initialOffset;
public string FilterComments(string text, ref int offset)
{
if (text == null)
throw new ArgumentNullException("text");
if (text.Length <= offset)
return null;
this.initialOffset = offset;
@ -249,25 +259,6 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -249,25 +259,6 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
return false;
}
bool ReadMultiLineComment(string text, ref int curOffset, ref int offset)
{
while (curOffset <= initialOffset)
{
char ch = text[curOffset++];
--offset;
if (ch == '*')
{
if (curOffset < text.Length && text[curOffset] == '/')
{
++curOffset;
--offset;
return true;
}
}
}
return false;
}
#endregion
#region mini backward lexer
@ -292,31 +283,23 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -292,31 +283,23 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
return '\0';
}
void UnGet()
{
++offset;
}
// void UnGet()
// {
// ++offset;
// }
// tokens for our lexer
static int Err = 0;
static int Dot = 1;
static int StrLit = 2;
static int Ident = 3;
static int New = 4;
// static int Bracket = 5;
static int Parent = 6;
static int Curly = 7;
static int Using = 8;
const int Err = 0;
const int Dot = 1;
const int StrLit = 2;
const int Ident = 3;
const int New = 4;
// const int Bracket = 5;
const int Parent = 6;
const int Curly = 7;
const int Using = 8;
int curTokenType;
readonly static string[] tokenStateName = new string[] {
"Err", "Dot", "StrLit", "Ident", "New", "Bracket", "Paren", "Curly", "Using"
};
string GetTokenName(int state)
{
return tokenStateName[state];
}
string lastIdentifier;
void ReadNextToken()
@ -340,19 +323,19 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -340,19 +323,19 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
switch (ch)
{
case '}':
if (ReadBracket('{', '}'))
if (ReadBracket('{'))
{
curTokenType = Curly;
}
break;
case ')':
if (ReadBracket('(', ')'))
if (ReadBracket('('))
{
curTokenType = Parent;
}
break;
case ']':
if (ReadBracket('[', ']'))
if (ReadBracket('['))
{
curTokenType = Ident;
}
@ -371,20 +354,14 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -371,20 +354,14 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
if (IsIdentifierPart(ch))
{
string ident = ReadIdentifier(ch);
if (ident != null)
{
switch (ident.ToLowerInvariant())
{
case "new":
curTokenType = New;
break;
case "imports":
curTokenType = Using;
break;
default:
lastIdentifier = ident;
curTokenType = Ident;
break;
if (ident != null) {
if (string.Equals(ident, "new", StringComparison.InvariantCultureIgnoreCase)) {
curTokenType = New;
} else if (string.Equals(ident, "imports", StringComparison.InvariantCultureIgnoreCase)) {
curTokenType = Using;
} else {
lastIdentifier = ident;
curTokenType = Ident;
}
}
}
@ -412,7 +389,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -412,7 +389,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
}
bool ReadBracket(char openBracket, char closingBracket)
bool ReadBracket(char openBracket)
{
int curlyBraceLevel = 0;
int squareBracketLevel = 0;
@ -472,45 +449,29 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -472,45 +449,29 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
return identifier;
}
bool IsIdentifierPart(char ch)
static bool IsIdentifierPart(char ch)
{
return Char.IsLetterOrDigit(ch) || ch == '_';
}
#endregion
#region finite state machine
readonly static int ERROR = 0;
readonly static int START = 1;
readonly static int DOT = 2;
readonly static int MORE = 3;
readonly static int CURLY = 4;
readonly static int CURLY2 = 5;
readonly static int CURLY3 = 6;
const int ERROR = 0;
const int START = 1;
const int DOT = 2;
const int MORE = 3;
const int CURLY = 4;
const int CURLY2 = 5;
const int CURLY3 = 6;
readonly static int ACCEPT = 7;
readonly static int ACCEPTNOMORE = 8;
readonly static int ACCEPT2 = 9;
const int ACCEPT = 7;
const int ACCEPTNOMORE = 8;
const int ACCEPT2 = 9;
readonly static string[] stateName = new string[] {
"ERROR",
"START",
"DOT",
"MORE",
"CURLY",
"CURLY2",
"CURLY3",
"ACCEPT",
"ACCEPTNOMORE",
"ACCEPT2"
};
string GetStateName(int state)
{
return stateName[state];
}
int state;
int lastAccept;
int state = 0;
int lastAccept = 0;
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1814:PreferJaggedArraysOverMultidimensional", MessageId = "Member")]
static int[,] stateTable = new int[,] {
// Err, Dot, Str, ID, New, Brk, Par, Cur, Using
/*ERROR*/ { ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR, ERROR},

67
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/VBNet/VBNetAmbience.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -28,7 +28,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
{
StringBuilder builder = new StringBuilder();
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -49,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("Shadows ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}
@ -82,7 +82,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -82,7 +82,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(ConvertAccessibility(c.Modifiers));
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -96,7 +96,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -96,7 +96,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}
@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -137,7 +137,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(' ');
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -147,7 +147,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -147,7 +147,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(c.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -162,18 +162,18 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -162,18 +162,18 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
if (ShowParameterList && c.ClassType == ClassType.Delegate) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
foreach (IMethod m in c.Methods) {
if (m.Name != "Invoke") continue;
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) builder.Append(", ");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
}
@ -208,6 +208,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -208,6 +208,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string ConvertEnd(IClass c)
{
if (c == null)
throw new ArgumentNullException("c");
StringBuilder builder = new StringBuilder();
builder.Append("End ");
@ -238,11 +241,14 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -238,11 +241,14 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string Convert(IField field)
{
if (field == null)
throw new ArgumentNullException("field");
StringBuilder builder = new StringBuilder();
builder.Append(ConvertAccessibility(field.Modifiers));
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -254,7 +260,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -254,7 +260,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
}
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
builder.Append("<b>");
}
@ -265,7 +271,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -265,7 +271,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(field.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -302,7 +308,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -302,7 +308,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("Property ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -312,21 +318,21 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -312,21 +318,21 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(property.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
if (ShowParameterList && property.Parameters.Count > 0) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
for (int i = 0; i < property.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(property.Parameters[i]));
if (i + 1 < property.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
builder.Append(')');
@ -342,6 +348,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -342,6 +348,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string Convert(IEvent e)
{
if (e == null)
throw new ArgumentNullException("e");
StringBuilder builder = new StringBuilder();
builder.Append(ConvertAccessibility(e.Modifiers));
@ -354,7 +363,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -354,7 +363,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append("Event ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
@ -364,7 +373,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -364,7 +373,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
builder.Append(e.Name);
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -401,13 +410,13 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -401,13 +410,13 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
dispName = "New";
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<b>");
}
builder.Append(dispName);
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</b>");
}
@ -422,15 +431,15 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -422,15 +431,15 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
if (ShowParameterList) {
builder.Append("(");
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
for (int i = 0; i < m.Parameters.Count; ++i) {
if (IncludeHTMLMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
if (IncludeHtmlMarkup) builder.Append("&nbsp;&nbsp;&nbsp;");
builder.Append(Convert(m.Parameters[i]));
if (i + 1 < m.Parameters.Count) {
builder.Append(", ");
}
if (IncludeHTMLMarkup) builder.Append("<br>");
if (IncludeHtmlMarkup) builder.Append("<br>");
}
builder.Append(')');
@ -446,6 +455,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -446,6 +455,9 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string ConvertEnd(IMethod m)
{
if (m == null)
throw new ArgumentNullException("m");
if (m.ReturnType == null || m.ReturnType.FullyQualifiedName == "System.Void") {
return "End Sub";
} else {
@ -501,8 +513,11 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -501,8 +513,11 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
public override string Convert(IParameter param)
{
if (param == null)
throw new ArgumentNullException("param");
StringBuilder builder = new StringBuilder();
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("<i>");
}
@ -514,7 +529,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet @@ -514,7 +529,7 @@ namespace ICSharpCode.SharpDevelop.Dom.VBNet
} else if (param.IsParams) {
builder.Append("ParamArray ");
}
if (IncludeHTMLMarkup) {
if (IncludeHtmlMarkup) {
builder.Append("</i>");
}

Loading…
Cancel
Save