// Define scopes protected override object?Visit(Expression.StructType sty) { symbolTable.PushScope(ScopeKind.Struct); base.Visit(sty); symbolTable.PopScope(); return(null); }
protected override object?Visit(Expression.StructType sty) { // NOTE: We don't visit declarations here to avoid recursion foreach (var field in sty.Fields) { Visit(field); } return(null); }
// Implementation details ////////////////////////////////////////////// protected override Type?Visit(Expression.StructType sty) => Type.Type_;