Browse Source

Fixed SD2-964: Public VB structure variables are recognized as private ones.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@1672 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
14594474f1
  1. 20
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

20
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -43,17 +43,19 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
ModifierEnum ConvertModifier(AST.Modifiers m) ModifierEnum ConvertModifier(AST.Modifiers m)
{ {
if (currentClass.Count > 0 && currentClass.Peek().ClassType == ClassType.Interface) if (this.IsVisualBasic)
return ConvertModifier(m, ModifierEnum.Public);
else if (currentClass.Count > 0 && currentClass.Peek().ClassType == ClassType.Interface)
return ConvertModifier(m, ModifierEnum.Public); return ConvertModifier(m, ModifierEnum.Public);
else else
return ConvertModifier(m, ModifierEnum.Private); return ConvertModifier(m, ModifierEnum.Private);
} }
ModifierEnum ConvertModifier(AST.Modifiers m, ModifierEnum defaultModifier) ModifierEnum ConvertModifier(AST.Modifiers m, ModifierEnum defaultVisibility)
{ {
ModifierEnum r = (ModifierEnum)m; ModifierEnum r = (ModifierEnum)m;
if (r == ModifierEnum.None) if ((r & ModifierEnum.VisibilityMask) == ModifierEnum.None)
return defaultModifier; return r | defaultVisibility;
else else
return r; return r;
} }
@ -495,11 +497,19 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return null; return null;
} }
bool IsVisualBasic {
get {
return cu.ProjectContent.Language == LanguageProperties.VBNet;
}
}
public override object VisitFieldDeclaration(AST.FieldDeclaration fieldDeclaration, object data) public override object VisitFieldDeclaration(AST.FieldDeclaration fieldDeclaration, object data)
{ {
DomRegion region = GetRegion(fieldDeclaration.StartLocation, fieldDeclaration.EndLocation); DomRegion region = GetRegion(fieldDeclaration.StartLocation, fieldDeclaration.EndLocation);
DefaultClass c = GetCurrentClass(); DefaultClass c = GetCurrentClass();
ModifierEnum modifier = ConvertModifier(fieldDeclaration.Modifier,
(c.ClassType == ClassType.Struct && this.IsVisualBasic)
? ModifierEnum.Public : ModifierEnum.Private);
string doku = GetDocumentation(region.BeginLine, fieldDeclaration.Attributes); string doku = GetDocumentation(region.BeginLine, fieldDeclaration.Attributes);
if (currentClass.Count > 0) { if (currentClass.Count > 0) {
for (int i = 0; i < fieldDeclaration.Fields.Count; ++i) { for (int i = 0; i < fieldDeclaration.Fields.Count; ++i) {
@ -510,7 +520,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
retType = c.DefaultReturnType; retType = c.DefaultReturnType;
else else
retType = CreateReturnType(fieldDeclaration.GetTypeForField(i)); retType = CreateReturnType(fieldDeclaration.GetTypeForField(i));
DefaultField f = new DefaultField(retType, field.Name, ConvertModifier(fieldDeclaration.Modifier), region, c); DefaultField f = new DefaultField(retType, field.Name, modifier, region, c);
ConvertAttributes(fieldDeclaration, f); ConvertAttributes(fieldDeclaration, f);
f.Documentation = doku; f.Documentation = doku;
if (c.ClassType == ClassType.Enum) { if (c.ClassType == ClassType.Enum) {

Loading…
Cancel
Save