Github user ottobackwards commented on the issue:

    https://github.com/apache/metron/pull/687
  
    OK,
    
    The others can comment, but I think proper scope would be implemented 
within the execution of the call stack, not arbitrarily by the resolvers.  Each 
resolver should be a 'scope' and new scopes should be created.  
    
    A.  Because it is a resolver thing, where would you document it in a way 
that makes sense?  I have been thinking that we should refactor to explicitly 
support scoping in the processor/evaluations and then have the resolvers _used_ 
in scope as scope implementations.  So the nesting of scopes would not be done 
in the resolver.
    
    B.  As noted in the PR description, I was hoping for discussion ( THIS 
discussion as a matter of fact ).  Having had some issues with my other PRs and 
scope, I chose to explicitly NOT go that far until we talked it through.  I did 
not feel all the way back then that I had enough of a grasp of the different 
resolvers to change their behavior and understand the consequences either way.
    
    C.  The LambaExpression actually delegates to the state variable resolver:
    
    ```java
      VariableResolver variableResolver = new DefaultVariableResolver(
            variable -> lambdaVariables.getOrDefault(variable
                , state.variableResolver.resolve(variable)
            ), variable -> true,
            (variable, value) -> {
              if (state.variableResolver.exists(variable)) {
                state.variableResolver.update(variable, value);
              }
            });
    ```
    
    
    D.   
    - I think I answered above. 
    - I *think* so, maybe @cestella  or @nickwallen  can answer that
    - Again, I stopped short until I got some kind of feedback.
    - I have changed StellarAssignment, I don't think we need both `=` and 
`:=`, and if there are `:=` floating around they will work, unless we remove 
StellarAssignment


---

Reply via email to