Browse Source

Merged Dom/Implementations/Abstact* and Dom/NRefactoryResolver/*.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@120 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
f22ad7df86
  1. 7
      src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
  2. 15
      src/Main/Base/Project/Src/Dom/Implementations/DefaultField.cs
  3. 13
      src/Main/Base/Project/Src/Dom/Implementations/DefaultIndexer.cs
  4. 31
      src/Main/Base/Project/Src/Dom/Implementations/DefaultMethod.cs
  5. 12
      src/Main/Base/Project/Src/Dom/Implementations/DefaultParameter.cs
  6. 12
      src/Main/Base/Project/Src/Dom/Implementations/DefaultProperty.cs
  7. 20
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Constructor.cs
  8. 16
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Destructor.cs
  9. 27
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Event.cs
  10. 20
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Field.cs
  11. 23
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Indexer.cs
  12. 21
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Method.cs
  13. 42
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
  14. 18
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs
  15. 16
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Parameter.cs
  16. 21
      src/Main/Base/Project/Src/Dom/NRefactoryResolver/Property.cs
  17. 2
      src/Main/Base/Project/Src/Dom/ReflectionLayer/ReflectionField.cs
  18. 2
      src/Main/Base/Project/Src/Dom/ReflectionLayer/ReflectionIndexer.cs
  19. 2
      src/Main/Base/Project/Src/Dom/ReflectionLayer/ReflectionMethod.cs
  20. 5
      src/Main/Base/Project/Src/Dom/ReflectionLayer/ReflectionParameter.cs
  21. 2
      src/Main/Base/Project/Src/Dom/ReflectionLayer/ReflectionProperty.cs
  22. 14
      src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

7
src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj

@ -360,13 +360,6 @@ @@ -360,13 +360,6 @@
<Compile Include="Src\Dom\NRefactoryResolver\TypeVisitor.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\NRefactoryASTConvertVisitor.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\ReturnType.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Constructor.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Destructor.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Field.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Indexer.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Method.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Parameter.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\Property.cs" />
<Compile Include="Src\Gui\Components\FontSelectionPanel.cs">
<SubType>UserControl</SubType>
</Compile>

15
src/Main/Base/Project/Src/Dom/Implementations/DefaultField.cs

@ -7,10 +7,10 @@ @@ -7,10 +7,10 @@
using System;
using System.Reflection;
namespace ICSharpCode.SharpDevelop.Dom
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public abstract class AbstractField : AbstractMember, IField
public class DefaultField : AbstractMember, IField
{
public override string DocumentationTag {
get {
@ -18,11 +18,18 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -18,11 +18,18 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public AbstractField(IClass declaringType, string name) : base(declaringType, name)
public DefaultField(IClass declaringType, string name) : base(declaringType, name)
{
}
public virtual int CompareTo(IField field)
public DefaultField(IReturnType type, string name, ModifierEnum m, IRegion region, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
this.Modifiers = m;
}
public virtual int CompareTo(IField field)
{
int cmp;

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

@ -10,7 +10,7 @@ using System.Collections.Generic; @@ -10,7 +10,7 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public abstract class AbstractIndexer : AbstractMember, IIndexer
public class DefaultIndexer : AbstractMember, IIndexer
{
protected IRegion bodyRegion;
protected IRegion getterRegion;
@ -55,10 +55,19 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -55,10 +55,19 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public AbstractIndexer(IClass declaringType) : base(declaringType, null)
public DefaultIndexer(IClass declaringType) : base(declaringType, null)
{
}
public DefaultIndexer(IReturnType type, List<IParameter> parameters, ModifierEnum m, IRegion region, IRegion bodyRegion, IClass declaringType) : this(declaringType)
{
this.ReturnType = type;
this.Parameters = parameters;
this.Region = region;
this.bodyRegion = bodyRegion;
this.Modifiers = m;
}
public virtual int CompareTo(IIndexer value)
{
int cmp;

31
src/Main/Base/Project/Src/Dom/Implementations/DefaultMethod.cs

@ -11,7 +11,26 @@ using System.Collections.Generic; @@ -11,7 +11,26 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public abstract class AbstractMethod : AbstractMember, IMethod
public class Constructor : DefaultMethod
{
public Constructor(ModifierEnum m, IRegion region, IRegion bodyRegion, IClass declaringType)
: base("#ctor", new ICSharpCode.SharpDevelop.Dom.NRefactoryResolver.ReturnType(declaringType.FullyQualifiedName),
m, region, bodyRegion, declaringType)
{
}
}
[Serializable]
public class Destructor : DefaultMethod
{
public Destructor(IRegion region, IRegion bodyRegion, IClass declaringType)
: base("#dtor", null, ModifierEnum.None, region, bodyRegion, declaringType)
{
}
}
[Serializable]
public class DefaultMethod : AbstractMember, IMethod
{
protected IRegion bodyRegion;
@ -47,8 +66,16 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -47,8 +66,16 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public AbstractMethod(IClass declaringType, string name) : base(declaringType, name)
public DefaultMethod(IClass declaringType, string name) : base(declaringType, name)
{
}
public DefaultMethod(string name, IReturnType type, ModifierEnum m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
this.bodyRegion = bodyRegion;
Modifiers = m;
}
public override string ToString()

12
src/Main/Base/Project/Src/Dom/Implementations/DefaultParameter.cs

@ -10,9 +10,8 @@ using System.Collections.Generic; @@ -10,9 +10,8 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public abstract class AbstractParameter : System.MarshalByRefObject, IParameter
public class DefaultParameter : System.MarshalByRefObject, IParameter
{
string name;
string documentation;
@ -25,7 +24,16 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -25,7 +24,16 @@ namespace ICSharpCode.SharpDevelop.Dom
protected IRegion region;
List<IAttribute> attributes;
protected DefaultParameter(string name)
{
Name = name;
}
public DefaultParameter(string name, IReturnType type, IRegion region) : this(name)
{
returnType = type;
this.region = region;
}
public IRegion Region {
get {

12
src/Main/Base/Project/Src/Dom/Implementations/DefaultProperty.cs

@ -11,7 +11,7 @@ using System.Collections.Generic; @@ -11,7 +11,7 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom {
[Serializable]
public abstract class AbstractProperty : AbstractMember, IProperty
public class DefaultProperty : AbstractMember, IProperty
{
protected IRegion bodyRegion;
@ -83,10 +83,18 @@ namespace ICSharpCode.SharpDevelop.Dom { @@ -83,10 +83,18 @@ namespace ICSharpCode.SharpDevelop.Dom {
}
}
public AbstractProperty(IClass declaringType, string name) : base(declaringType, name)
public DefaultProperty(IClass declaringType, string name) : base(declaringType, name)
{
}
public DefaultProperty(string name, IReturnType type, ModifierEnum m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
this.bodyRegion = bodyRegion;
Modifiers = m;
}
public virtual int CompareTo(IProperty value)
{
int cmp;

20
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Constructor.cs

@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
// created on 06.08.2003 at 12:35
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Constructor : AbstractMethod
{
public Constructor(Modifier m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType, "#ctor")
{
this.Region = region;
this.bodyRegion = bodyRegion;
Modifiers = (ModifierEnum)m;
if (Modifiers == ModifierEnum.None) {
Modifiers = ModifierEnum.Private;
}
}
}
}

16
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Destructor.cs

@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
// created on 06.08.2003 at 12:35
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Destructor : AbstractMethod
{
public Destructor(IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType, "~" + declaringType.Name)
{
this.Region = region;
this.bodyRegion = bodyRegion;
}
}
}

27
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Event.cs

@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
// created on 06.08.2003 at 12:30
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Event : AbstractEvent
{
public void AddModifier(ModifierEnum m)
{
modifiers = modifiers | m;
}
public Event(string name, ReturnType type, Modifier m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType)
{
FullyQualifiedName = name;
returnType = type;
this.region = region;
this.bodyRegion = bodyRegion;
modifiers = (ModifierEnum)m;
if (modifiers == ModifierEnum.None) {
modifiers = ModifierEnum.Private;
}
}
}
}

20
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Field.cs

@ -1,20 +0,0 @@ @@ -1,20 +0,0 @@
// created on 04.08.2003 at 18:06
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Field : AbstractField
{
public Field(ReturnType type, string name, Modifier m, IRegion region, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
Modifiers = (ModifierEnum)m;
if (Modifiers == ModifierEnum.None) {
Modifiers = ModifierEnum.Private;
}
}
}
}

23
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Indexer.cs

@ -1,23 +0,0 @@ @@ -1,23 +0,0 @@
// created on 06.08.2003 at 12:34
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Indexer : AbstractIndexer
{
public Indexer(ReturnType type, List<IParameter> parameters, Modifier m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType)
{
this.ReturnType = type;
this.Parameters = parameters;
this.Region = region;
this.bodyRegion = bodyRegion;
Modifiers = (ModifierEnum)m;
if (Modifiers == ModifierEnum.None) {
Modifiers = ModifierEnum.Private;
}
}
}
}

21
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Method.cs

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
// created on 06.08.2003 at 12:35
using System;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Method : AbstractMethod
{
public Method(string name, ReturnType type, Modifier m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
this.bodyRegion = bodyRegion;
Modifiers = (ModifierEnum)m;
if (Modifiers == ModifierEnum.None) {
Modifiers = ModifierEnum.Private;
}
}
}
}

42
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -35,6 +35,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -35,6 +35,17 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return currentClass.Count == 0 ? null : currentClass.Peek();
}
ModifierEnum ConvertModifier(AST.Modifier m)
{
return ConvertModifier(m, ModifierEnum.Private);
}
ModifierEnum ConvertModifier(AST.Modifier m, ModifierEnum defaultModifier)
{
// TODO: Is this possible? I think we have to pay caution to defaultModifier
return (ModifierEnum)m;
}
public override object Visit(AST.CompilationUnit compilationUnit, object data)
{
//TODO: usings, Comments
@ -121,11 +132,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -121,11 +132,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return result;
}
// ModifierEnum VisitModifier(ICSharpCode.NRefactory.Parser.Modifier m)
// {
// return (ModifierEnum)m;
// }
public override object Visit(AST.NamespaceDeclaration namespaceDeclaration, object data)
{
string name;
@ -164,7 +170,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -164,7 +170,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object Visit(AST.TypeDeclaration typeDeclaration, object data)
{
DefaultRegion region = GetRegion(typeDeclaration.StartLocation, typeDeclaration.EndLocation);
DefaultClass c = new DefaultClass(cu, TranslateClassType(typeDeclaration.Type), (ModifierEnum)typeDeclaration.Modifier, region, GetCurrentClass());
DefaultClass c = new DefaultClass(cu, TranslateClassType(typeDeclaration.Type), ConvertModifier(typeDeclaration.Modifier, ModifierEnum.Internal), region, GetCurrentClass());
c.Attributes.AddRange(VisitAttributes(typeDeclaration.Attributes));
if (currentClass.Count > 0) {
@ -193,7 +199,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -193,7 +199,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object Visit(AST.DelegateDeclaration delegateDeclaration, object data)
{
DefaultRegion region = GetRegion(delegateDeclaration.StartLocation, delegateDeclaration.EndLocation);
DefaultClass c = new DefaultClass(cu, ClassType.Delegate, (ModifierEnum)delegateDeclaration.Modifier, region, GetCurrentClass());
DefaultClass c = new DefaultClass(cu, ClassType.Delegate, ConvertModifier(delegateDeclaration.Modifier, ModifierEnum.Internal), region, GetCurrentClass());
c.Attributes.AddRange(VisitAttributes(delegateDeclaration.Attributes));
c.BaseTypes.Add("System.Delegate");
if (currentClass.Count > 0) {
@ -208,7 +214,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -208,7 +214,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
cu.Classes.Add(c);
}
Method invokeMethod = new Method("Invoke", new ReturnType(delegateDeclaration.ReturnType), delegateDeclaration.Modifier, null, null, c);
DefaultMethod invokeMethod = new DefaultMethod("Invoke", new ReturnType(delegateDeclaration.ReturnType), ConvertModifier(delegateDeclaration.Modifier), null, null, c);
c.Methods.Add(invokeMethod);
return c;
}
@ -220,13 +226,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -220,13 +226,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ReturnType type = new ReturnType(methodDeclaration.TypeReference);
DefaultClass c = GetCurrentClass();
Method method = new Method(methodDeclaration.Name, type, methodDeclaration.Modifier, region, bodyRegion, GetCurrentClass());
DefaultMethod method = new DefaultMethod(methodDeclaration.Name, type, ConvertModifier(methodDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
method.Attributes.AddRange(VisitAttributes(methodDeclaration.Attributes));
List<IParameter> parameters = new List<IParameter>();
if (methodDeclaration.Parameters != null) {
foreach (AST.ParameterDeclarationExpression par in methodDeclaration.Parameters) {
ReturnType parType = new ReturnType(par.TypeReference);
Parameter p = new Parameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, methodDeclaration.Body.EndLocation));
DefaultParameter p = new DefaultParameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, methodDeclaration.Body.EndLocation));
parameters.Add(p);
}
}
@ -241,13 +247,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -241,13 +247,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
DefaultRegion bodyRegion = GetRegion(constructorDeclaration.EndLocation, constructorDeclaration.Body != null ? constructorDeclaration.Body.EndLocation : new Point(-1, -1));
DefaultClass c = GetCurrentClass();
Constructor constructor = new Constructor(constructorDeclaration.Modifier, region, bodyRegion, GetCurrentClass());
Constructor constructor = new Constructor(ConvertModifier(constructorDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
constructor.Attributes.AddRange(VisitAttributes(constructorDeclaration.Attributes));
List<IParameter> parameters = new List<IParameter>();
if (constructorDeclaration.Parameters != null) {
foreach (AST.ParameterDeclarationExpression par in constructorDeclaration.Parameters) {
ReturnType parType = new ReturnType(par.TypeReference);
Parameter p = new Parameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, constructorDeclaration.Body.EndLocation));
DefaultParameter p = new DefaultParameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, constructorDeclaration.Body.EndLocation));
parameters.Add(p);
}
}
@ -283,7 +289,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -283,7 +289,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
retType = new ReturnType(c.FullyQualifiedName);
else
retType = new ReturnType(fieldDeclaration.GetTypeForField(i));
Field f = new Field(retType, field.Name, fieldDeclaration.Modifier, region, c);
DefaultField f = new DefaultField(retType, field.Name, ConvertModifier(fieldDeclaration.Modifier), region, c);
f.Attributes.AddRange(VisitAttributes(fieldDeclaration.Attributes));
if (c.ClassType == ClassType.Enum) {
f.Modifiers = ModifierEnum.Const | ModifierEnum.Public;
@ -303,7 +309,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -303,7 +309,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ReturnType type = new ReturnType(propertyDeclaration.TypeReference);
DefaultClass c = GetCurrentClass();
Property property = new Property(propertyDeclaration.Name, type, propertyDeclaration.Modifier, region, bodyRegion, GetCurrentClass());
DefaultProperty property = new DefaultProperty(propertyDeclaration.Name, type, ConvertModifier(propertyDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
property.Attributes.AddRange(VisitAttributes(propertyDeclaration.Attributes));
c.Properties.Add(property);
return null;
@ -319,12 +325,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -319,12 +325,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (eventDeclaration.VariableDeclarators != null) {
foreach (ICSharpCode.NRefactory.Parser.AST.VariableDeclaration varDecl in eventDeclaration.VariableDeclarators) {
e = new DefaultEvent(varDecl.Name, type, (ModifierEnum)eventDeclaration.Modifier, region, bodyRegion, GetCurrentClass());
e = new DefaultEvent(varDecl.Name, type, ConvertModifier(eventDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
e.Attributes.AddRange(VisitAttributes(eventDeclaration.Attributes));
c.Events.Add(e);
}
} else {
e = new DefaultEvent(eventDeclaration.Name, type, (ModifierEnum)eventDeclaration.Modifier, region, bodyRegion, GetCurrentClass());
e = new DefaultEvent(eventDeclaration.Name, type, ConvertModifier(eventDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
e.Attributes.AddRange(VisitAttributes(eventDeclaration.Attributes));
c.Events.Add(e);
}
@ -336,12 +342,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -336,12 +342,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
DefaultRegion region = GetRegion(indexerDeclaration.StartLocation, indexerDeclaration.EndLocation);
DefaultRegion bodyRegion = GetRegion(indexerDeclaration.BodyStart, indexerDeclaration.BodyEnd);
List<IParameter> parameters = new List<IParameter>();
Indexer i = new Indexer(new ReturnType(indexerDeclaration.TypeReference), parameters, indexerDeclaration.Modifier, region, bodyRegion, GetCurrentClass());
DefaultIndexer i = new DefaultIndexer(new ReturnType(indexerDeclaration.TypeReference), parameters, ConvertModifier(indexerDeclaration.Modifier), region, bodyRegion, GetCurrentClass());
i.Attributes.AddRange(VisitAttributes(indexerDeclaration.Attributes));
if (indexerDeclaration.Parameters != null) {
foreach (AST.ParameterDeclarationExpression par in indexerDeclaration.Parameters) {
ReturnType parType = new ReturnType(par.TypeReference);
Parameter p = new Parameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, indexerDeclaration.EndLocation));
DefaultParameter p = new DefaultParameter(par.ParameterName, parType, new DefaultRegion(par.StartLocation, indexerDeclaration.EndLocation));
parameters.Add(p);
}
}

18
src/Main/Base/Project/Src/Dom/NRefactoryResolver/NRefactoryResolver.cs

@ -220,12 +220,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -220,12 +220,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
LocalLookupVariable var = SearchVariable(identifier);
if (var != null) {
IReturnType type = GetVariableType(var);
IField field = new LocalVariableField(FixType(type), identifier, new DefaultRegion(var.StartPos, var.EndPos), callingClass);
IField field = new DefaultField(FixType(type), identifier, ModifierEnum.None, new DefaultRegion(var.StartPos, var.EndPos), callingClass);
return new LocalResolveResult(callingMember, field, false);
}
IParameter para = SearchMethodParameter(identifier);
if (para != null) {
IField field = new LocalVariableField(FixType(para.ReturnType), para.Name, para.Region, callingClass);
IField field = new DefaultField(FixType(para.ReturnType), para.Name, ModifierEnum.None, para.Region, callingClass);
return new LocalResolveResult(callingMember, field, true);
}
}
@ -252,16 +252,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -252,16 +252,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
return null;
}
private class LocalVariableField : AbstractField
{
public LocalVariableField(IReturnType type, string name, IRegion region, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
this.Modifiers = ModifierEnum.Private;
}
}
#endregion
private ResolveResult CreateMemberResolveResult(IMember member)
@ -721,7 +711,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -721,7 +711,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IMethod method = callingMember as IMethod;
if (method != null) {
foreach (IParameter p in method.Parameters) {
result.Add(new Field(new ReturnType(p.ReturnType.Name, p.ReturnType.ArrayDimensions, p.ReturnType.PointerNestingLevel), p.Name, Modifier.None, method.Region, callingClass));
result.Add(new DefaultField(new ReturnType(p.ReturnType.Name, p.ReturnType.ArrayDimensions, p.ReturnType.PointerNestingLevel), p.Name, ModifierEnum.None, method.Region, callingClass));
}
}
result.AddRange(projectContent.GetNamespaceContents(callingClass.Namespace));
@ -741,7 +731,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -741,7 +731,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (IsInside(new Point(caretColumn, caretLine), v.StartPos, v.EndPos)) {
// LocalLookupVariable in no known Type in DisplayBindings.TextEditor
// so add Field for the Variables
result.Add(new Field(new ReturnType(v.TypeRef), name, Modifier.None, new DefaultRegion(v.StartPos, v.EndPos), callingClass));
result.Add(new DefaultField(new ReturnType(v.TypeRef), name, ModifierEnum.None, new DefaultRegion(v.StartPos, v.EndPos), callingClass));
break;
}
}

16
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Parameter.cs

@ -1,16 +0,0 @@ @@ -1,16 +0,0 @@
// created on 07.08.2003 at 20:12
using ICSharpCode.SharpDevelop.Dom;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Parameter : AbstractParameter
{
public Parameter(string name, ReturnType type, IRegion region)
{
Name = name;
returnType = type;
this.region = region;
}
}
}

21
src/Main/Base/Project/Src/Dom/NRefactoryResolver/Property.cs

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
// created on 06.08.2003 at 12:36
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.NRefactory.Parser.AST;
namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
{
public class Property : AbstractProperty
{
public Property(string name, ReturnType type, Modifier m, IRegion region, IRegion bodyRegion, IClass declaringType) : base(declaringType, name)
{
this.ReturnType = type;
this.Region = region;
this.bodyRegion = bodyRegion;
Modifiers = (ModifierEnum)m;
if (Modifiers == ModifierEnum.None) {
Modifiers = ModifierEnum.Private;
}
}
}
}

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

@ -13,7 +13,7 @@ using System.Xml; @@ -13,7 +13,7 @@ using System.Xml;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public class ReflectionField : AbstractField
public class ReflectionField : DefaultField
{
FieldInfo fieldInfo;
public override IReturnType ReturnType {

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

@ -14,7 +14,7 @@ using System.Xml; @@ -14,7 +14,7 @@ using System.Xml;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public class ReflectionIndexer : AbstractIndexer
public class ReflectionIndexer : DefaultIndexer
{
PropertyInfo propertyInfo;

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

@ -14,7 +14,7 @@ using System.Xml; @@ -14,7 +14,7 @@ using System.Xml;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public class ReflectionMethod : AbstractMethod
public class ReflectionMethod : DefaultMethod
{
MethodBase methodBase;

5
src/Main/Base/Project/Src/Dom/ReflectionLayer/ReflectionParameter.cs

@ -11,7 +11,7 @@ using System.Xml; @@ -11,7 +11,7 @@ using System.Xml;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public class ReflectionParameter : AbstractParameter
public class ReflectionParameter : DefaultParameter
{
ParameterInfo parameterInfo;
public override IReturnType ReturnType {
@ -22,10 +22,9 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -22,10 +22,9 @@ namespace ICSharpCode.SharpDevelop.Dom
}
}
public ReflectionParameter(ParameterInfo parameterInfo)
public ReflectionParameter(ParameterInfo parameterInfo) : base(parameterInfo.Name)
{
this.parameterInfo = parameterInfo;
Name = parameterInfo.Name;
if (parameterInfo.IsOut) {
modifier |= ParameterModifier.Out;

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

@ -12,7 +12,7 @@ using System.Xml; @@ -12,7 +12,7 @@ using System.Xml;
namespace ICSharpCode.SharpDevelop.Dom
{
[Serializable]
public class ReflectionProperty : AbstractProperty
public class ReflectionProperty : DefaultProperty
{
PropertyInfo propertyInfo;

14
src/Main/Base/Project/Src/Gui/WorkbenchSingleton.cs

@ -88,9 +88,16 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -88,9 +88,16 @@ namespace ICSharpCode.SharpDevelop.Gui
Form form = (Form)WorkbenchSingleton.Workbench;
PerformCallDelegate performCallDelegate;
#if DEBUG
string callerStack;
#endif
public STAThreadCaller()
{
performCallDelegate = new PerformCallDelegate(DoPerformCall);
#if DEBUG
callerStack = Environment.StackTrace;
#endif
}
public object Call(object target, string methodName, params object[] arguments)
@ -103,6 +110,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -103,6 +110,7 @@ namespace ICSharpCode.SharpDevelop.Gui
this.methodName = methodName;
this.arguments = arguments;
// TODO: This doesn't look like it's thread-safe, we're calling the target directly!
return DoPerformCall();
}
@ -125,8 +133,12 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -125,8 +133,12 @@ namespace ICSharpCode.SharpDevelop.Gui
return methodInfo.Invoke(target, arguments);
}
} catch (Exception ex) {
MessageService.ShowError(ex, "Exception got. ");
#if DEBUG
Console.WriteLine("Stacktrace of source thread:");
Console.WriteLine(callerStack);
Console.WriteLine();
#endif
}
}
return null;

Loading…
Cancel
Save