gleam-lang/gleam

Qualified constants cannot be referenced inside bit array size segment patterns.

Open

#5,607 opened on Apr 11, 2026

View on GitHub
 (1 comment) (0 reactions) (0 assignees)Rust (960 forks)batch import
good first issuehelp wanted

Repository metrics

Stars
 (21,417 stars)
PR merge metrics
 (Avg merge 8d 6h) (59 merged PRs in 30d)

Description

When pattern matching on a bit array, the compiler produces a syntax error if a qualified imported constant is referenced inside a size segment, for example:

import example/internal

const lap_data_size = 50

pub fn parse(bits:BitArray)->Result(_,Nil){
  case bits {
    <<
      lap_data:bytes-size(internal.maximum_cars * lap_data_size),
      time_trial_personal_best_car:unsigned-int-8,
      time_trial_rival_car:unsigned-int-8,
    >> -> todo
    _ -> todo
  }
}

This code produces the following error pointing to internal.:

Syntax error

I was not expecting this.

Found `.`, expected one of: 
- `)`

Contributor guide