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. 11
      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 @@
<Compile Include="Src\Dom\NRefactoryResolver\TypeVisitor.cs" /> <Compile Include="Src\Dom\NRefactoryResolver\TypeVisitor.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\NRefactoryASTConvertVisitor.cs" /> <Compile Include="Src\Dom\NRefactoryResolver\NRefactoryASTConvertVisitor.cs" />
<Compile Include="Src\Dom\NRefactoryResolver\ReturnType.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"> <Compile Include="Src\Gui\Components\FontSelectionPanel.cs">
<SubType>UserControl</SubType> <SubType>UserControl</SubType>
</Compile> </Compile>

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

@ -10,7 +10,7 @@ using System.Reflection;
namespace ICSharpCode.SharpDevelop.Dom namespace ICSharpCode.SharpDevelop.Dom
{ {
[Serializable] [Serializable]
public abstract class AbstractField : AbstractMember, IField public class DefaultField : AbstractMember, IField
{ {
public override string DocumentationTag { public override string DocumentationTag {
get { get {
@ -18,10 +18,17 @@ namespace ICSharpCode.SharpDevelop.Dom
} }
} }
public AbstractField(IClass declaringType, string name) : base(declaringType, name) public DefaultField(IClass declaringType, string name) : base(declaringType, name)
{ {
} }
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) public virtual int CompareTo(IField field)
{ {
int cmp; int cmp;

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

@ -10,7 +10,7 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom namespace ICSharpCode.SharpDevelop.Dom
{ {
[Serializable] [Serializable]
public abstract class AbstractIndexer : AbstractMember, IIndexer public class DefaultIndexer : AbstractMember, IIndexer
{ {
protected IRegion bodyRegion; protected IRegion bodyRegion;
protected IRegion getterRegion; protected IRegion getterRegion;
@ -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) public virtual int CompareTo(IIndexer value)
{ {
int cmp; int cmp;

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

@ -11,7 +11,26 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom namespace ICSharpCode.SharpDevelop.Dom
{ {
[Serializable] [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; protected IRegion bodyRegion;
@ -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() public override string ToString()

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

@ -10,9 +10,8 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom namespace ICSharpCode.SharpDevelop.Dom
{ {
[Serializable] [Serializable]
public abstract class AbstractParameter : System.MarshalByRefObject, IParameter public class DefaultParameter : System.MarshalByRefObject, IParameter
{ {
string name; string name;
string documentation; string documentation;
@ -25,7 +24,16 @@ namespace ICSharpCode.SharpDevelop.Dom
protected IRegion region; protected IRegion region;
List<IAttribute> attributes; 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 { public IRegion Region {
get { get {

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

@ -11,7 +11,7 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom { namespace ICSharpCode.SharpDevelop.Dom {
[Serializable] [Serializable]
public abstract class AbstractProperty : AbstractMember, IProperty public class DefaultProperty : AbstractMember, IProperty
{ {
protected IRegion bodyRegion; protected IRegion bodyRegion;
@ -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) public virtual int CompareTo(IProperty value)
{ {
int cmp; int cmp;

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

@ -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 @@
// 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 @@
// 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 @@
// 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 @@
// 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 @@
// 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
return currentClass.Count == 0 ? null : currentClass.Peek(); 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) public override object Visit(AST.CompilationUnit compilationUnit, object data)
{ {
//TODO: usings, Comments //TODO: usings, Comments
@ -121,11 +132,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return result; return result;
} }
// ModifierEnum VisitModifier(ICSharpCode.NRefactory.Parser.Modifier m)
// {
// return (ModifierEnum)m;
// }
public override object Visit(AST.NamespaceDeclaration namespaceDeclaration, object data) public override object Visit(AST.NamespaceDeclaration namespaceDeclaration, object data)
{ {
string name; string name;
@ -164,7 +170,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object Visit(AST.TypeDeclaration typeDeclaration, object data) public override object Visit(AST.TypeDeclaration typeDeclaration, object data)
{ {
DefaultRegion region = GetRegion(typeDeclaration.StartLocation, typeDeclaration.EndLocation); 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)); c.Attributes.AddRange(VisitAttributes(typeDeclaration.Attributes));
if (currentClass.Count > 0) { if (currentClass.Count > 0) {
@ -193,7 +199,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
public override object Visit(AST.DelegateDeclaration delegateDeclaration, object data) public override object Visit(AST.DelegateDeclaration delegateDeclaration, object data)
{ {
DefaultRegion region = GetRegion(delegateDeclaration.StartLocation, delegateDeclaration.EndLocation); 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.Attributes.AddRange(VisitAttributes(delegateDeclaration.Attributes));
c.BaseTypes.Add("System.Delegate"); c.BaseTypes.Add("System.Delegate");
if (currentClass.Count > 0) { if (currentClass.Count > 0) {
@ -208,7 +214,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
} }
cu.Classes.Add(c); 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); c.Methods.Add(invokeMethod);
return c; return c;
} }
@ -220,13 +226,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ReturnType type = new ReturnType(methodDeclaration.TypeReference); ReturnType type = new ReturnType(methodDeclaration.TypeReference);
DefaultClass c = GetCurrentClass(); 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)); method.Attributes.AddRange(VisitAttributes(methodDeclaration.Attributes));
List<IParameter> parameters = new List<IParameter>(); List<IParameter> parameters = new List<IParameter>();
if (methodDeclaration.Parameters != null) { if (methodDeclaration.Parameters != null) {
foreach (AST.ParameterDeclarationExpression par in methodDeclaration.Parameters) { foreach (AST.ParameterDeclarationExpression par in methodDeclaration.Parameters) {
ReturnType parType = new ReturnType(par.TypeReference); 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); parameters.Add(p);
} }
} }
@ -241,13 +247,13 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
DefaultRegion bodyRegion = GetRegion(constructorDeclaration.EndLocation, constructorDeclaration.Body != null ? constructorDeclaration.Body.EndLocation : new Point(-1, -1)); DefaultRegion bodyRegion = GetRegion(constructorDeclaration.EndLocation, constructorDeclaration.Body != null ? constructorDeclaration.Body.EndLocation : new Point(-1, -1));
DefaultClass c = GetCurrentClass(); 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)); constructor.Attributes.AddRange(VisitAttributes(constructorDeclaration.Attributes));
List<IParameter> parameters = new List<IParameter>(); List<IParameter> parameters = new List<IParameter>();
if (constructorDeclaration.Parameters != null) { if (constructorDeclaration.Parameters != null) {
foreach (AST.ParameterDeclarationExpression par in constructorDeclaration.Parameters) { foreach (AST.ParameterDeclarationExpression par in constructorDeclaration.Parameters) {
ReturnType parType = new ReturnType(par.TypeReference); 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); parameters.Add(p);
} }
} }
@ -283,7 +289,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
retType = new ReturnType(c.FullyQualifiedName); retType = new ReturnType(c.FullyQualifiedName);
else else
retType = new ReturnType(fieldDeclaration.GetTypeForField(i)); 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)); f.Attributes.AddRange(VisitAttributes(fieldDeclaration.Attributes));
if (c.ClassType == ClassType.Enum) { if (c.ClassType == ClassType.Enum) {
f.Modifiers = ModifierEnum.Const | ModifierEnum.Public; f.Modifiers = ModifierEnum.Const | ModifierEnum.Public;
@ -303,7 +309,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ReturnType type = new ReturnType(propertyDeclaration.TypeReference); ReturnType type = new ReturnType(propertyDeclaration.TypeReference);
DefaultClass c = GetCurrentClass(); 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)); property.Attributes.AddRange(VisitAttributes(propertyDeclaration.Attributes));
c.Properties.Add(property); c.Properties.Add(property);
return null; return null;
@ -319,12 +325,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (eventDeclaration.VariableDeclarators != null) { if (eventDeclaration.VariableDeclarators != null) {
foreach (ICSharpCode.NRefactory.Parser.AST.VariableDeclaration varDecl in eventDeclaration.VariableDeclarators) { 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)); e.Attributes.AddRange(VisitAttributes(eventDeclaration.Attributes));
c.Events.Add(e); c.Events.Add(e);
} }
} else { } 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)); e.Attributes.AddRange(VisitAttributes(eventDeclaration.Attributes));
c.Events.Add(e); c.Events.Add(e);
} }
@ -336,12 +342,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
DefaultRegion region = GetRegion(indexerDeclaration.StartLocation, indexerDeclaration.EndLocation); DefaultRegion region = GetRegion(indexerDeclaration.StartLocation, indexerDeclaration.EndLocation);
DefaultRegion bodyRegion = GetRegion(indexerDeclaration.BodyStart, indexerDeclaration.BodyEnd); DefaultRegion bodyRegion = GetRegion(indexerDeclaration.BodyStart, indexerDeclaration.BodyEnd);
List<IParameter> parameters = new List<IParameter>(); 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)); i.Attributes.AddRange(VisitAttributes(indexerDeclaration.Attributes));
if (indexerDeclaration.Parameters != null) { if (indexerDeclaration.Parameters != null) {
foreach (AST.ParameterDeclarationExpression par in indexerDeclaration.Parameters) { foreach (AST.ParameterDeclarationExpression par in indexerDeclaration.Parameters) {
ReturnType parType = new ReturnType(par.TypeReference); 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); parameters.Add(p);
} }
} }

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

@ -220,12 +220,12 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
LocalLookupVariable var = SearchVariable(identifier); LocalLookupVariable var = SearchVariable(identifier);
if (var != null) { if (var != null) {
IReturnType type = GetVariableType(var); 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); return new LocalResolveResult(callingMember, field, false);
} }
IParameter para = SearchMethodParameter(identifier); IParameter para = SearchMethodParameter(identifier);
if (para != null) { 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); return new LocalResolveResult(callingMember, field, true);
} }
} }
@ -252,16 +252,6 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
} }
return null; 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 #endregion
private ResolveResult CreateMemberResolveResult(IMember member) private ResolveResult CreateMemberResolveResult(IMember member)
@ -721,7 +711,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IMethod method = callingMember as IMethod; IMethod method = callingMember as IMethod;
if (method != null) { if (method != null) {
foreach (IParameter p in method.Parameters) { 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)); result.AddRange(projectContent.GetNamespaceContents(callingClass.Namespace));
@ -741,7 +731,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (IsInside(new Point(caretColumn, caretLine), v.StartPos, v.EndPos)) { if (IsInside(new Point(caretColumn, caretLine), v.StartPos, v.EndPos)) {
// LocalLookupVariable in no known Type in DisplayBindings.TextEditor // LocalLookupVariable in no known Type in DisplayBindings.TextEditor
// so add Field for the Variables // 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; break;
} }
} }

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

@ -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 @@
// 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;
namespace ICSharpCode.SharpDevelop.Dom namespace ICSharpCode.SharpDevelop.Dom
{ {
[Serializable] [Serializable]
public class ReflectionField : AbstractField public class ReflectionField : DefaultField
{ {
FieldInfo fieldInfo; FieldInfo fieldInfo;
public override IReturnType ReturnType { public override IReturnType ReturnType {

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

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

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

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

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

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

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

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

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

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

Loading…
Cancel
Save