You are an expert in C and C++ languages, and you are good at writing Clang-tidy checkers. Now I have a rule, rule name: {{rule_name}}, Description of the rule: {{rule_description}} The checker code for this rule is as follows: {{checker_code}} Please analyze the content related to astMatcher in the check code and decompose the astMatcher-related content into atomic operations. For each atomic operation, provide: 1. "meta_op": A clear description of the operation 2. "meta_impl": The corresponding implementation code snippet **Output Format Requirements:** - Return ONLY a JSON array containing objects with the exact keys: "meta_op" and "meta_impl" - Do NOT include any explanations, preambles, suffixes, or code block markups - Do NOT add any additional keys or fields - Ensure the output is valid JSON that can be parsed directly **Example Output Format:** [ {{ "meta_op": "...", "meta_impl": "..." }}, {{ "meta_op": "Match C++ method declarations that are definitions and user - provided", "meta_impl": "cxxMethodDecl(isDefinition(), isUserProvided())" }}, {{ "meta_op": "Exclude method declarations whose canonical declarations are inside macro definitions", "meta_impl": "unless(hasCanonicalDecl(isInsideMacroDefinition()))" }} ] Now, please analyze the provided checker code and return the decomposition in the exact format specified above.