///|
// Two expression occurrences from Prometheus's Apache-2.0 lint fixture. Rule
// labels/group names are deliberately outside the expression library boundary.
fn main raise {
  let public_query = "job:request_latency_seconds:mean5m{job=\"myjob\"} > 0.5"
  for id in ["HighRequestLatency#1", "HighRequestLatency#2"] {
    let ast = @promql.parse(public_query)
    let inferred = @promql.infer_type(ast)
    if inferred != @promql.InstantVector {
      abort("unexpected public query type")
    }
    println("\{id}: instant-vector; expression accepted, rule validity unknown")
  }
  // Original negative example: a vector aggregation cannot take a scalar.
  let bad = try {
    ignore(@promql.infer_type(@promql.parse("sum(1)")))
    false
  } catch {
    _ => true
  }
  if !bad {
    abort("type mismatch was accepted")
  }
  println("synthetic-type-error: rejected")
  println(
    "scope: no YAML/rule metadata, duplicate-rule detection or evaluation",
  )
}