Browse Source

Refactor protected class member checking in CheckStaticClass.

pull/742/head
Joao Matos 9 years ago
parent
commit
dad7ec8ccb
  1. 27
      src/Generator/Passes/CheckStaticClass.cs

27
src/Generator/Passes/CheckStaticClass.cs

@ -22,11 +22,26 @@ namespace CppSharp.Passes @@ -22,11 +22,26 @@ namespace CppSharp.Passes
if (Options.IsCSharpGenerator)
{
// C# cannot have protected members in static classes.
if (IsProtectedClassMember(decl) && decl.IsGenerated)
SetDeclarationAccessToPrivate(decl);
}
return true;
}
static bool IsProtectedClassMember(Declaration decl)
{
if (decl.Access != AccessSpecifier.Protected)
return false;
var @class = decl.Namespace as Class;
if ( decl.Access == AccessSpecifier.Protected &&
decl.GenerationKind == GenerationKind.Generate &&
@class != null &&
@class.IsStatic)
if (@class == null || !@class.IsStatic)
return false;
return true;
}
static void SetDeclarationAccessToPrivate(Declaration decl)
{
// By setting it to private it will appear
// as an internal in the final C# wrapper.
@ -36,10 +51,6 @@ namespace CppSharp.Passes @@ -36,10 +51,6 @@ namespace CppSharp.Passes
// now private declaration will get filtered out later.
decl.GenerationKind = GenerationKind.Generate;
}
}
return true;
}
static bool ReturnsClassInstance(Function function)
{

Loading…
Cancel
Save