Skip to content

thread 281816 panic: integer overflow #8775

@godalming123

Description

@godalming123

If I have a file called test.roc:

app [main!] {
    pf: platform "https://github.com/lukewilliamboswell/roc-platform-template-zig/releases/download/0.6/2BfGn4M9uWJNhDVeMghGeXNVDFijMfPsmmVeo6M4QjKX.tar.zst"
}

str_err! : Str, Try(ok, Str) => Try(ok, [Exit(I32)])
str_err! = |stage, result| {
    match result {
        Ok(value) => Ok(value)
        Err(msg) => {
            Stderr.line!("Failed to ${stage}:\n${msg}")
            Err(Exit(1))
        }
    }
}

ValueCombinationMethod := [
    # Operations with higher prioraty (prioraty 3 is the highest prioraty) are executed first
    # See https://en.wikipedia.org/wiki/Order_of_operations#Programming_languages
    Prioraty0([BooleanAnd, BooleanOr, BooleanNot]),
    Prioraty1([IsEqual, IsNotEqual, IsGreaterThan, IsLessThan, IsGreaterThanOrEqual, IsLessThanOrEqual]),
    Prioraty2([Multiply, Divide, Modulo]),
    Prioraty3([Add, Subtract]),
].{
    less_than_or_equal = |method1, method2| {
        match (method1, method2) {
            (Prioraty0(_), _) => True
            (_, Prioraty0(_)) => False
            (Prioraty1(_), _) => True
            (_, Prioraty1(_)) => False
            (Prioraty2(_), _) => True
            (_, Prioraty2(_)) => False
            (Prioraty3(_), _) => True
            (_, Prioraty3(_)) => False
        }
    }
}

Value := [
    UInt(U64),
    CombinedValue({
        combination_method: ValueCombinationMethod,
        value1: Value,
        value2: Value,
    }),
]

TokenContents : [
    NewlineToken,
    OpenBracketToken, # (
    CloseBracketToken, # )
    OpenSquareBracketToken, # [
    CloseSquareBracketToken, # ]
    OpenBraceToken, # {
    CloseBraceToken, # }
    CommaToken, # ,
    ColonToken, # :
    AssignToken, # =
    EqualToken, # ==
    MinusToken, # -
    ArrowToken, # ->
    DotDotToken(NumericRangeType),
    DotToken, # .
    ModuloToken, # %
    UIntDigitsToken(U64),
    IntDigitsToken(I64),
    FloatDigitsToken(F64),
    StrDigitsToken(Str),
    ForToken,
    InToken,
    IfToken,
    ElseToken,
    DoToken,
    WhileToken,
    MutToken,
    IdentToken(Str),
    CommentToken(Str),
    StringToken(Str),
    EndOfFileToken,
]

TokenizerResult : (
    Try(TokenContents, Str),
    U64, # Index of start of token/error
    U64, # New index in file
)
get_next_token : List(U8), U64 -> TokenizerResult
get_next_token = |file, index| {
    Err("todo")
}

parse_value : List(U8), TokenizerResult, List(Str) -> Try((Try(TokenContents, TokenizerError), U64, List(Str), Value, U64), Str)
parse_value = |file, result, possibilities| {
    (first_value, var $index) = parse_first_value(file, result, possibilities)?
    (token, token_pos, $index) = get_next_token(file, $index)
    (value1, token2, token2_pos) = match (first_value, token) {
      (VariableReference(name), Ok(OpenBracketToken)) => {
        # TODO
        (t2, t2_pos, $index) = get_next_token(file, $index)
        Ok((FunctionCall({name, args: []}), t2, t2_pos))
      }
      _ => (first_value, token, token_pos)
    }
    combination_method1 : ValueCombinationMethod
    combination_method1 = match token2 {
        Ok(ModuloToken) => Prioraty2(Modulo)
        # TODO
        _ => {
          return Ok((token2, token2_pos, ["`%`"], value1, $index))
        }
    }
    (token3, token3_pos, expected, value2, $index) = parse_value(file, get_next_token(file, $index), [])
    value = match value2 {
        CombinedValue({combination_method: combination_method2, value1: value2A, value2: value2B}) => {
            if combination_method1 <= combination_method2 {
                # Combination method 2 is ran first
                CombinedValue({combination_method: combination_method1, value1, value2})
            } else {
                # Combination method 1 is ran first
                CombinedValue({
                    combination_method: combination_method2,
                    value1: CombinedValue({
                        combination_method: combination_method1,
                        value1: value1,
                        value2: value2A,
                    }),
                    value2: value2B,
                })
            }
        }
        _ => CombinedValue({combination_method: combination_method1, value1, value2})
    }
    Ok((token3, token3_pos, expected, value, $index))
}

main! : List(Str) => Try({}, [Exit(I32)])
main! = |_args| {
    (_token, _token_pos, _expected, value, _index) = str_err!("parse value", parse_value(Str.to_utf8("15 + 4 == 19"), 0))?
    Stdout.line!(Str.inspect(value))
    Ok({})
}

Then, when I run the file with roc ./test.roc, I get an error message which is too long to copy/paste into here, but the start of it is copied here:

thread 281816 panic: integer overflow
/home/jg/roc/src/check/unify.zig:440:32: 0x5287acb in unifyGuarded (mod.zig)
                    self.depth += 1;
                               ^
/home/jg/roc/src/check/unify.zig:1392:38: 0x56ad1b1 in unifyTwoRecords (mod.zig)
                try self.unifyGuarded(a_gathered_ext, b_gathered_ext);
                                     ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:2110:38: 0x59743c6 in unifySharedTags (mod.zig)
                try self.unifyGuarded(a_arg, b_arg);
                                     ^
/home/jg/roc/src/check/unify.zig:1837:41: 0x56aedb6 in unifyTwoTagUnions (mod.zig)
                try self.unifySharedTags(
                                        ^
/home/jg/roc/src/check/unify.zig:1216:35: 0x56ac0a0 in unifyTagUnionWithNominal (mod.zig)
        try self.unifyTwoTagUnions(vars, anon_tag_union, nominal_backing_tag_union);
                                  ^
/home/jg/roc/src/check/unify.zig:1044:58: 0x5617a05 in unifyFlatType (mod.zig)
                        try self.unifyTagUnionWithNominal(vars, b_type, b_backing_var, b_backing_resolved, a_tag_union, .b_is_nominal);
                                                         ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^
/home/jg/roc/src/check/unify.zig:441:50: 0x5287afc in unifyGuarded (mod.zig)
                    const result = self.unifyVars(&vars);
                                                 ^
/home/jg/roc/src/check/unify.zig:1688:34: 0x597130f in unifySharedFields (mod.zig)
            try self.unifyGuarded(shared.a.var_, shared.b.var_);
                                 ^
/home/jg/roc/src/check/unify.zig:1396:43: 0x56ad29a in unifyTwoRecords (mod.zig)
                try self.unifySharedFields(
                                          ^
/home/jg/roc/src/check/unify.zig:976:49: 0x5616ee6 in unifyFlatType (mod.zig)
                        try self.unifyTwoRecords(
                                                ^
/home/jg/roc/src/check/unify.zig:751:39: 0x552de1d in unifyStructure (mod.zig)
                try self.unifyFlatType(vars, a_flat_type, b_flat_type);
                                      ^
/home/jg/roc/src/check/unify.zig:473:40: 0x5403b86 in unifyVars (mod.zig)
                try self.unifyStructure(vars, a_flat_type, vars.b.desc.content);
                                       ^

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions