Skip to content

Commit

Permalink
Add additional internal pattern combinator
Browse files Browse the repository at this point in the history
Allows `semgrep-internal-patterns-allow-disjoint` to appear everywhere
(other than taint) where a `patterns` may appear. See notion for
semantics.
  • Loading branch information
kopecs committed Nov 8, 2023
1 parent b0eae2d commit a12009e
Showing 1 changed file with 45 additions and 0 deletions.
45 changes: 45 additions & 0 deletions rule_schema_v1.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -217,6 +217,7 @@ $defs:
- required: [ pattern ]
- required: [ pattern-regex ]
- required: [ patterns ]
- required: [ semgrep-internal-patterns-allow-disjoint ]
- required: [ pattern-either ]
- required: [ pattern-not ]
- required: [ pattern-inside ]
Expand All @@ -228,6 +229,8 @@ $defs:
type: string
patterns:
$ref: "#/$defs/patterns-content"
semgrep-internal-patterns-allow-disjoint:
$ref: "#/$defs/patterns-content"
pattern-either:
$ref: "#/$defs/pattern-either-content"
pattern-not:
Expand All @@ -244,6 +247,7 @@ $defs:
items:
anyOf:
- $ref: "#/$defs/patterns"
- $ref: "#/$defs/semgrep-internal-patterns-allow-disjoint"
- $ref: "#/$defs/pattern-either"
- $ref: "#/$defs/focus-metavariable"
- $ref: "#/$defs/pattern-inside"
Expand All @@ -264,6 +268,7 @@ $defs:
items:
anyOf:
- $ref: "#/$defs/patterns"
- $ref: "#/$defs/semgrep-internal-patterns-allow-disjoint"
- $ref: "#/$defs/pattern-either"
- $ref: "#/$defs/pattern-inside"
- $ref: "#/$defs/pattern"
Expand Down Expand Up @@ -503,6 +508,8 @@ $defs:
type: string
patterns:
$ref: "#/$defs/patterns-content"
semgrep-internal-patterns-allow-disjoint:
$ref: "#/$defs/patterns-content"
pattern-either:
$ref: "#/$defs/pattern-either-content"
required:
Expand All @@ -514,6 +521,8 @@ $defs:
anyOf:
- required:
- patterns
- required:
- semgrep-internal-patterns-allow-disjoint
- required:
- pattern-either
- required:
Expand All @@ -524,6 +533,20 @@ $defs:
anyOf:
- required:
- pattern
- required:
- semgrep-internal-patterns-allow-disjoint
- required:
- pattern-either
- required:
- pattern-regex
- required:
- semgrep-internal-patterns-allow-disjoint
not:
anyOf:
- required:
- pattern
- required:
- patterns
- required:
- pattern-either
- required:
Expand All @@ -536,6 +559,8 @@ $defs:
- pattern
- required:
- patterns
- required:
- semgrep-internal-patterns-allow-disjoint
- required:
- pattern-regex
- required:
Expand All @@ -546,6 +571,8 @@ $defs:
- pattern
- required:
- patterns
- required:
- semgrep-internal-patterns-allow-disjoint
- required:
- pattern-either
additionalProperties: false
Expand Down Expand Up @@ -640,6 +667,18 @@ $defs:
required:
- patterns
additionalProperties: false
# EXPERIMENTAL
semgrep-internal-patterns-allow-disjoint:
type: object
properties:
semgrep-internal-patterns-allow-disjoint:
title: >-
Return finding where all of the nested conditions are true, without
respect to position of subpatterns.
$ref: "#/$defs/patterns-content"
required:
- semgrep-internal-patterns-allow-disjoint
additionalProperties: false
pattern-either:
type: object
properties:
Expand Down Expand Up @@ -871,6 +910,8 @@ properties:
type: string
patterns:
$ref: "#/$defs/patterns-content"
semgrep-internal-patterns-allow-disjoint:
$ref: "#/$defs/patterns-content"
pattern-either:
$ref: "#/$defs/pattern-either-content"
# EXPERIMENTAL
Expand Down Expand Up @@ -1041,6 +1082,8 @@ properties:
- pattern
- required:
- patterns
- required:
- semgrep-internal-patterns-allow-disjoint
- required:
- pattern-either
- required:
Expand All @@ -1051,6 +1094,8 @@ properties:
- pattern
- required:
- patterns
- required:
- semgrep-internal-patterns-allow-disjoint
- required:
- pattern-either
- required:
Expand Down

0 comments on commit a12009e

Please sign in to comment.