Skip to content

Commit

Permalink
Rename the QVar constructor to Literal
Browse files Browse the repository at this point in the history
This constructor is for quoted string literals. It took me a while to
figure this out so I'm renaming it to make it easier for the next person
who works with this code.

Signed-off-by: Stephen Sherratt <stephen@sherra.tt>
  • Loading branch information
gridbugs committed May 15, 2023
1 parent 16f1fdf commit fc2ba8e
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 9 deletions.
2 changes: 1 addition & 1 deletion bin/pkg.ml
Expand Up @@ -129,7 +129,7 @@ module Lock = struct

let filter_of_var var =
match (var : Package.Dependency.Constraint.Var.t) with
| QVar literal -> OpamTypes.FString literal
| Literal literal -> OpamTypes.FString literal
| Var var -> OpamTypes.FIdent ([], OpamVariable.of_string var, None)

let relop_of_op op =
Expand Down
2 changes: 1 addition & 1 deletion src/dune_rules/opam_create.ml
Expand Up @@ -145,7 +145,7 @@ let odoc_name = Package.Name.of_string "odoc"
let insert_dune_dep depends dune_version =
let constraint_ : Package.Dependency.Constraint.t =
let dune_version = Dune_lang.Syntax.Version.to_string dune_version in
Uop (Gte, QVar dune_version)
Uop (Gte, Literal dune_version)
in
let rec loop acc = function
| [] ->
Expand Down
11 changes: 6 additions & 5 deletions src/dune_rules/package.ml
Expand Up @@ -106,28 +106,29 @@ module Dependency = struct
module Constraint = struct
module Var = struct
type t =
| QVar of string
| Literal of string
| Var of string

let encode = function
| QVar v -> Dune_lang.Encoder.string v
| Literal v -> Dune_lang.Encoder.string v
| Var v -> Dune_lang.Encoder.string (":" ^ v)

let decode =
let open Dune_lang.Decoder in
let+ s = string in
if String.is_prefix s ~prefix:":" then Var (String.drop s 1) else QVar s
if String.is_prefix s ~prefix:":" then Var (String.drop s 1)
else Literal s

let to_opam v =
let value_kind : OpamParserTypes.FullPos.value_kind =
match v with
| QVar x -> String x
| Literal x -> String x
| Var x -> Ident x
in
nopos value_kind

let to_dyn = function
| QVar v -> Dyn.String v
| Literal v -> Dyn.String v
| Var v -> Dyn.String (":" ^ v)
end

Expand Down
5 changes: 3 additions & 2 deletions src/dune_rules/package.mli
Expand Up @@ -48,8 +48,9 @@ module Dependency : sig
module Constraint : sig
module Var : sig
type t =
| QVar of string
| Var of string
| Literal of string
(** A quoted string literal, such as a version number *)
| Var of string (** A variable name such as :version or :with-test *)
end

type t =
Expand Down

0 comments on commit fc2ba8e

Please sign in to comment.