@@ -637,7 +637,7 @@ public int Compare(Tuple<int, int> t1, Tuple<int, int> t2)
637
637
/// <summary>
638
638
/// Class used to do variable analysis on the whole script
639
639
/// </summary>
640
- public class ScriptAnalysis : ICustomAstVisitor2
640
+ public class ScriptAnalysis : ICustomAstVisitor
641
641
{
642
642
private VariableAnalysis OuterAnalysis ;
643
643
@@ -696,77 +696,40 @@ public object VisitScriptBlock(ScriptBlockAst scriptBlockAst)
696
696
}
697
697
698
698
/// <summary>
699
- /// Do nothing
700
- /// </summary>
701
- /// <param name="baseCtorInvokeMemberExpressionAst"></param>
702
- /// <returns></returns>
703
- public object VisitBaseCtorInvokeMemberExpression ( BaseCtorInvokeMemberExpressionAst baseCtorInvokeMemberExpressionAst )
704
- {
705
- return null ;
706
- }
707
-
708
- /// <summary>
709
- /// Do nothing
699
+ /// perform special visiting action if statement is a typedefinitionast
710
700
/// </summary>
711
- /// <param name="configurationDefinitionAst "></param>
701
+ /// <param name="statementAst "></param>
712
702
/// <returns></returns>
713
- public object VisitConfigurationDefinition ( ConfigurationDefinitionAst configurationDefinitionAst )
703
+ private object VisitStatementHelper ( StatementAst statementAst )
714
704
{
715
- return null ;
716
- }
705
+ if ( statementAst == null )
706
+ {
707
+ return null ;
708
+ }
717
709
718
- /// <summary>
719
- /// Do nothing
720
- /// </summary>
721
- /// <param name="dynamicKeywordAst"></param>
722
- /// <returns></returns>
723
- public object VisitDynamicKeywordStatement ( DynamicKeywordStatementAst dynamicKeywordAst )
724
- {
725
- return null ;
726
- }
710
+ TypeDefinitionAst typeAst = statementAst as TypeDefinitionAst ;
727
711
728
- /// <summary>
729
- /// Set outer analysis before further visiting.
730
- /// </summary>
731
- /// <param name="functionMemberAst"></param>
732
- /// <returns></returns>
733
- public object VisitFunctionMember ( FunctionMemberAst functionMemberAst )
734
- {
735
- var previousOuter = OuterAnalysis ;
736
- OuterAnalysis = Helper . Instance . InitializeVariableAnalysisHelper ( functionMemberAst , OuterAnalysis ) ;
737
-
738
- if ( functionMemberAst != null )
712
+ if ( typeAst == null )
739
713
{
740
- functionMemberAst . Body . Visit ( this ) ;
714
+ statementAst . Visit ( this ) ;
715
+ return null ;
741
716
}
742
717
743
- OuterAnalysis = previousOuter ;
718
+ foreach ( var member in typeAst . Members )
719
+ {
720
+ FunctionMemberAst functionMemberAst = member as FunctionMemberAst ;
744
721
745
- return null ;
746
- }
722
+ if ( functionMemberAst != null )
723
+ {
724
+ var previousOuter = OuterAnalysis ;
725
+ OuterAnalysis = Helper . Instance . InitializeVariableAnalysisHelper ( functionMemberAst , OuterAnalysis ) ;
747
726
748
- /// <summary>
749
- /// Do nothing
750
- /// </summary>
751
- /// <param name="propertyMemberAst"></param>
752
- /// <returns></returns>
753
- public object VisitPropertyMember ( PropertyMemberAst propertyMemberAst )
754
- {
755
- return null ;
756
- }
727
+ if ( functionMemberAst != null )
728
+ {
729
+ functionMemberAst . Body . Visit ( this ) ;
730
+ }
757
731
758
- /// <summary>
759
- /// Visit the functions defined in class
760
- /// </summary>
761
- /// <param name="typeDefinitionAst"></param>
762
- /// <returns></returns>
763
- public object VisitTypeDefinition ( TypeDefinitionAst typeDefinitionAst )
764
- {
765
- if ( typeDefinitionAst != null )
766
- {
767
- foreach ( var member in typeDefinitionAst . Members )
768
- {
769
- member . Visit ( this ) ;
732
+ OuterAnalysis = previousOuter ;
770
733
}
771
734
}
772
735
@@ -1182,7 +1145,7 @@ public object VisitNamedBlock(NamedBlockAst namedBlockAst)
1182
1145
{
1183
1146
foreach ( var statement in namedBlockAst . Statements )
1184
1147
{
1185
- statement . Visit ( this ) ;
1148
+ VisitStatementHelper ( statement ) ;
1186
1149
}
1187
1150
}
1188
1151
@@ -1265,7 +1228,7 @@ public object VisitStatementBlock(StatementBlockAst statementBlockAst)
1265
1228
{
1266
1229
foreach ( var statement in statementBlockAst . Statements )
1267
1230
{
1268
- statement . Visit ( this ) ;
1231
+ VisitStatementHelper ( statement ) ;
1269
1232
}
1270
1233
}
1271
1234
0 commit comments