@@ -25,8 +25,8 @@ internal class Walker : CSharpSyntaxWalker, ILog
25
25
private readonly CSTOJSOptions _Options ;
26
26
private readonly SemanticModel _Model ;
27
27
28
- private SyntaxNode ? _SNOriginal = null ;
29
- private SyntaxNode ? _BaseConstructorInitializerNode = null ;
28
+ private SyntaxNode ? _SNOriginalAsExpression = null ;
29
+ private SyntaxNode ? _SNBaseConstructorInitializerNode = null ;
30
30
private SyntaxNode ? _SNPropertyType = null ;
31
31
32
32
private string _NameSpaceStr = string . Empty ;
@@ -359,7 +359,7 @@ public override void VisitConstructorDeclaration(ConstructorDeclarationSyntax no
359
359
break ;
360
360
case SyntaxKind . BaseConstructorInitializer :
361
361
{
362
- _BaseConstructorInitializerNode = asNode ;
362
+ _SNBaseConstructorInitializerNode = asNode ;
363
363
SyntaxTriviaList _syntaxTrivias = asNode . GetTrailingTrivia ( ) ;
364
364
for ( int _i = 0 ; _i < _syntaxTrivias . Count ; _i ++ )
365
365
{
@@ -569,18 +569,18 @@ public override void VisitBlock(BlockSyntax node)
569
569
case SyntaxKind . OpenBraceToken :
570
570
{
571
571
VisitToken ( asToken ) ;
572
- if ( _BaseConstructorInitializerNode != null )
572
+ if ( _SNBaseConstructorInitializerNode != null )
573
573
{
574
574
SyntaxTriviaList _syntaxTrivias = asToken . LeadingTrivia ;
575
575
for ( int _i = 0 ; _i < _syntaxTrivias . Count ; _i ++ )
576
576
{
577
577
VisitTrivia ( _syntaxTrivias [ _i ] ) ;
578
578
}
579
579
JSSB . Append ( "\t super" ) ;
580
- Visit ( ( _BaseConstructorInitializerNode as ConstructorInitializerSyntax ) . ArgumentList ) ;
580
+ Visit ( ( _SNBaseConstructorInitializerNode as ConstructorInitializerSyntax ) . ArgumentList ) ;
581
581
//Todo!
582
582
//JSSB.Append(";");
583
- _BaseConstructorInitializerNode = null ;
583
+ _SNBaseConstructorInitializerNode = null ;
584
584
}
585
585
break ;
586
586
}
@@ -2152,13 +2152,12 @@ public override void VisitParenthesizedExpression(ParenthesizedExpressionSyntax
2152
2152
break ;
2153
2153
case SyntaxKind . AsExpression :
2154
2154
{
2155
-
2156
2155
//Todo double/multiply asExpression?? How?
2157
- _SNOriginal = ( asNode as BinaryExpressionSyntax ) . Left ;
2156
+ _SNOriginalAsExpression = ( asNode as BinaryExpressionSyntax ) . Left ;
2158
2157
2159
- Visit ( _SNOriginal . WithoutTrailingTrivia ( ) ) ;
2158
+ Visit ( _SNOriginalAsExpression . WithoutTrailingTrivia ( ) ) ;
2160
2159
2161
- _SNOriginal = null ;
2160
+ _SNOriginalAsExpression = null ;
2162
2161
break ;
2163
2162
}
2164
2163
default :
@@ -2717,9 +2716,9 @@ public bool IdentifierToken(SyntaxNode node)
2717
2716
}
2718
2717
2719
2718
SymbolInfo ? symbolInfo = null ;
2720
- if ( _SNOriginal != null )
2719
+ if ( _SNOriginalAsExpression != null )
2721
2720
{
2722
- IEnumerable < SyntaxNodeOrToken > _identifierNameSyntax = _SNOriginal . DescendantNodesAndTokens ( ) . Where ( e => e . IsToken == true ) ;
2721
+ IEnumerable < SyntaxNodeOrToken > _identifierNameSyntax = _SNOriginalAsExpression . DescendantNodesAndTokens ( ) . Where ( e => e . IsToken == true ) ;
2723
2722
foreach ( SyntaxNodeOrToken _item in _identifierNameSyntax )
2724
2723
{
2725
2724
SyntaxToken _syntaxToken = _item . AsToken ( ) ;
@@ -2733,7 +2732,7 @@ public bool IdentifierToken(SyntaxNode node)
2733
2732
}
2734
2733
}
2735
2734
}
2736
- node = _SNOriginal ;
2735
+ node = _SNOriginalAsExpression ;
2737
2736
}
2738
2737
else
2739
2738
{
@@ -2909,7 +2908,7 @@ where e.IsKind(SyntaxKind.IdentifierToken)
2909
2908
object [ ] _attrs = type . GetCustomAttributes ( true ) ;
2910
2909
foreach ( object _attr in _attrs )
2911
2910
{
2912
- ToAttribute _authAttr = _attr as ToAttribute ;
2911
+ ToAttribute ? _authAttr = _attr as ToAttribute ;
2913
2912
if ( _authAttr != null )
2914
2913
{
2915
2914
VisitLeadingTrivia ( identifier ) ;
@@ -2922,64 +2921,28 @@ where e.IsKind(SyntaxKind.IdentifierToken)
2922
2921
}
2923
2922
2924
2923
MemberInfo [ ] _Members = type . GetMembers ( ) ;
2925
- foreach ( MemberInfo _memberInfo in _Members )
2926
- {
2927
- //TODO! A better way for nested classes!
2928
- var c = _memberInfo as Type ;
2929
-
2930
- if ( c != null && c . IsClass )
2931
- {
2932
- MemberInfo [ ] _Members1 = c . GetMembers ( ) ;
2933
- foreach ( MemberInfo _memberInfo1 in _Members1 )
2934
- {
2935
- //TODO! A better way for nested classes!
2936
- var c1 = _memberInfo1 as Type ;
2937
-
2938
- if ( c1 != null && c1 . IsClass )
2939
- {
2940
- MemberInfo [ ] _Members2 = c1 . GetMembers ( ) ;
2941
- foreach ( MemberInfo _memberInfo2 in _Members2 )
2942
- {
2943
- if ( _memberInfo2 . Name == text )
2944
- {
2945
- object [ ] _attrs2 = _memberInfo2 . GetCustomAttributes ( true ) ;
2946
- foreach ( object _attr2 in _attrs2 )
2947
- {
2948
- ToAttribute _authAttr2 = _attr2 as ToAttribute ;
2949
- if ( _authAttr2 != null )
2950
- {
2951
- JSSB . Append ( $ "{ _authAttr2 . Convert ( text ) } ") ;
2952
- return true ;
2953
- }
2954
- }
2955
2924
2956
- return true ;
2957
- }
2958
- }
2959
- }
2960
- if ( _memberInfo1 . Name == text )
2961
- {
2962
- object [ ] _attrs1 = _memberInfo1 . GetCustomAttributes ( true ) ;
2963
- foreach ( object _attr1 in _attrs1 )
2964
- {
2965
- ToAttribute _authAttr1 = _attr1 as ToAttribute ;
2966
- if ( _authAttr1 != null )
2967
- {
2968
- JSSB . Append ( $ "{ _authAttr1 . Convert ( text ) } ") ;
2969
- return true ;
2970
- }
2971
- }
2925
+ bool b = _CheckMembersInNestedClasses ( _Members ) ;
2972
2926
2973
- return true ;
2974
- }
2975
- }
2927
+ if ( b == true )
2928
+ return true ;
2929
+ }
2930
+ bool _CheckMembersInNestedClasses ( MemberInfo [ ] _members )
2931
+ {
2932
+ foreach ( MemberInfo _memberInfo in _members )
2933
+ {
2934
+ Type ? _type = _memberInfo as Type ;
2935
+ if ( _type != null && _type . IsClass )
2936
+ {
2937
+ return _CheckMembersInNestedClasses ( _type . GetMembers ( ) ) ;
2976
2938
}
2977
2939
if ( _memberInfo . Name == text )
2978
2940
{
2979
2941
object [ ] _attrs = _memberInfo . GetCustomAttributes ( true ) ;
2942
+
2980
2943
foreach ( object _attr in _attrs )
2981
2944
{
2982
- ToAttribute _authAttr = _attr as ToAttribute ;
2945
+ ToAttribute ? _authAttr = _attr as ToAttribute ;
2983
2946
if ( _authAttr != null )
2984
2947
{
2985
2948
JSSB . Append ( $ "{ _authAttr . Convert ( text ) } ") ;
@@ -2990,6 +2953,8 @@ where e.IsKind(SyntaxKind.IdentifierToken)
2990
2953
return true ;
2991
2954
}
2992
2955
}
2956
+
2957
+ return false ;
2993
2958
}
2994
2959
2995
2960
if ( CustomCSNamesToJS ( node ) == false )
0 commit comments