Skip to content

Commit

Permalink
Moved the fixes from bug-fixes branch
Browse files Browse the repository at this point in the history
  • Loading branch information
elamaunt committed Dec 20, 2023
1 parent 0ba8644 commit f27d27a
Show file tree
Hide file tree
Showing 8 changed files with 45 additions and 28 deletions.
2 changes: 2 additions & 0 deletions src/GDShrapt.Reader/Basics/GDLiteralToken.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ public override int GetHashCode()
return Sequence?.GetHashCode() ?? base.GetHashCode();
}

public abstract GDLiteralToken CloneWith(string stringValue);

public override bool Equals(object obj)
{
if (obj is GDLiteralToken other)
Expand Down
1 change: 1 addition & 0 deletions src/GDShrapt.Reader/Basics/IGDClassDeclaration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,5 +12,6 @@ public interface IGDClassDeclaration : IGDSyntaxToken
IEnumerable<GDMethodDeclaration> Methods { get; }
IEnumerable<GDEnumDeclaration> Enums { get; }
IEnumerable<GDInnerClassDeclaration> InnerClasses { get; }
IEnumerable<GDIdentifiableClassMember> IdentifiableMembers { get; }
}
}
1 change: 0 additions & 1 deletion src/GDShrapt.Reader/Declarations/Class/GDClassMember.cs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
{
public abstract class GDClassMember : GDIntendedNode
{

internal GDClassMember(int intendation)
: base(intendation)
{
Expand Down
2 changes: 1 addition & 1 deletion src/GDShrapt.Reader/Declarations/GDClassDeclaration.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ public GDClassDeclaration()
public IEnumerable<GDMethodDeclaration> Methods => Members.OfType<GDMethodDeclaration>();
public IEnumerable<GDEnumDeclaration> Enums => Members.OfType<GDEnumDeclaration>();
public IEnumerable<GDInnerClassDeclaration> InnerClasses => Members.OfType<GDInnerClassDeclaration>();

public IEnumerable<GDIdentifiableClassMember> IdentifiableMembers => Members.OfType<GDIdentifiableClassMember>();
public override GDNode CreateEmptyInstance()
{
return new GDClassDeclaration();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ public sealed class GDInnerClassDeclaration : GDIdentifiableClassMember, IGDClas
public IEnumerable<GDMethodDeclaration> Methods => Members.OfType<GDMethodDeclaration>();
public IEnumerable<GDEnumDeclaration> Enums => Members.OfType<GDEnumDeclaration>();
public IEnumerable<GDInnerClassDeclaration> InnerClasses => Members.OfType<GDInnerClassDeclaration>();
public IEnumerable<GDIdentifiableClassMember> IdentifiableMembers => Members.OfType<GDIdentifiableClassMember>();

public GDClassKeyword ClassKeyword
{
Expand Down
50 changes: 24 additions & 26 deletions src/GDShrapt.Reader/SimpleTokens/GDIdentifier.cs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ public bool TryExtractLocalScopeVisibleDeclarationFromParents(out GDIdentifier d
{
if (isStaticContext.Value)
{
foreach (var member in innerClass.Members.OfType<GDIdentifiableClassMember>())
foreach (var member in innerClass.IdentifiableMembers)
{
if (member.IsStatic && member.Identifier == this)
{
Expand All @@ -138,7 +138,7 @@ public bool TryExtractLocalScopeVisibleDeclarationFromParents(out GDIdentifier d
}
else
{
foreach (var member in innerClass.Members.OfType<GDIdentifiableClassMember>())
foreach (var member in innerClass.IdentifiableMembers)
{
if (member.Identifier == this)
{
Expand All @@ -154,44 +154,33 @@ public bool TryExtractLocalScopeVisibleDeclarationFromParents(out GDIdentifier d

if (node is GDClassDeclaration @class)
{
if (isStaticContext.HasValue)
if (isStaticContext.HasValue && isStaticContext.Value)
{
if (isStaticContext.Value)
foreach (var member in @class.IdentifiableMembers)
{
foreach (var member in @class.Members.OfType<GDIdentifiableClassMember>())
if (member.IsStatic && member.Identifier == this)
{
if (member.IsStatic && member.Identifier == this)
{
declaration = member.Identifier;
return true;
}
declaration = member.Identifier;
return true;
}
}
else
}
else
{
foreach (var member in @class.IdentifiableMembers)
{
foreach (var member in @class.Members.OfType<GDIdentifiableClassMember>())
if (member.Identifier == this)
{
if (member.Identifier == this)
{
declaration = member.Identifier;
return true;
}
declaration = member.Identifier;
return true;
}
}

}

break;
}

foreach (var item in node.GetMethodScopeDeclarations(startLine))
{
if (item == this)
{
declaration = item;
return true;
}
}

if (node is GDMethodDeclaration method)
{
if (method.Identifier == this)
Expand All @@ -206,6 +195,15 @@ public bool TryExtractLocalScopeVisibleDeclarationFromParents(out GDIdentifier d
continue;
}

foreach (var item in node.GetMethodScopeDeclarations(startLine))
{
if (item == this)
{
declaration = item;
return true;
}
}

node = node.Parent;
}

Expand Down
8 changes: 8 additions & 0 deletions src/GDShrapt.Reader/SimpleTokens/GDNumber.cs
Original file line number Diff line number Diff line change
Expand Up @@ -279,6 +279,14 @@ public override GDSyntaxToken Clone()
};
}

public override GDLiteralToken CloneWith(string stringValue)
{
return new GDNumber()
{
Sequence = stringValue
};
}

public override string ToString()
{
return $"{_literalValue}";
Expand Down
8 changes: 8 additions & 0 deletions src/GDShrapt.Reader/SimpleTokens/GDStringPart.cs
Original file line number Diff line number Diff line change
Expand Up @@ -73,5 +73,13 @@ public override string ToString()
{
return $"{Sequence}";
}

public override GDLiteralToken CloneWith(string stringValue)
{
return new GDStringPart()
{
Sequence = stringValue
};
}
}
}

0 comments on commit f27d27a

Please sign in to comment.