public inbox for ~johnnyrichard/olang-devel@lists.sr.ht
 help / color / mirror / code / Atom feed
241e57c6019bb27b9997f9e70d5b2e2319e96b2c blob 1480 bytes (raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
 
/*
 * Copyright (C) 2024 olang maintainers
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <https://www.gnu.org/licenses/>.
 */
#include "type.h"
#include "assert.h"

char *void_str = "void";
type_t global_void_type;

type_t *
type_new_unknown(arena_t *arena, string_view_t id)
{
    type_t *type = arena_alloc(arena, sizeof(type_t));
    assert(type);

    type->kind = TYPE_UNKNOWN;
    type->id = id;
    return type;
}

type_t *
type_new_ptr(arena_t *arena, string_view_t id, type_t *ref_type)
{
    type_t *type = arena_alloc(arena, sizeof(type_t));
    assert(type);

    type->kind = TYPE_PTR;
    type->id = id;
    type->as_ptr.type = ref_type;
    return type;
}

type_t *
type_void()
{
    if (global_void_type.id.chars != void_str) {
        global_void_type.id.chars = void_str;
        global_void_type.id.size = 4;
        global_void_type.kind = TYPE_VOID;
    }
    return &global_void_type;
}
debug log:

solving 241e57c ...
found 241e57c in http://lists.johnnyrichard.com/olang/20241022033942.39374-1-carlos@maniero.me/
found 4a8d6f4 in https://git.johnnyrichard.com/olang.git
preparing index
index prepared:
100644 4a8d6f4bf11a1db74b1e276b560bdf6cc6e88094	src/type.c

applying [1/1] http://lists.johnnyrichard.com/olang/20241022033942.39374-1-carlos@maniero.me/
diff --git a/src/type.c b/src/type.c
index 4a8d6f4..241e57c 100644

Checking patch src/type.c...
Applied patch src/type.c cleanly.

index at:
100644 241e57c6019bb27b9997f9e70d5b2e2319e96b2c	src/type.c

Code repositories for project(s) associated with this public inbox

	https://git.johnnyrichard.com/olang.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox