summaryrefslogtreecommitdiff
path: root/types.h
diff options
context:
space:
mode:
Diffstat (limited to 'types.h')
-rw-r--r--types.h8
1 files changed, 6 insertions, 2 deletions
diff --git a/types.h b/types.h
index ec9d79f..323c792 100644
--- a/types.h
+++ b/types.h
@@ -363,6 +363,8 @@ typedef struct Type {
struct {
Field *fields;
size_t size; /* size of this struct during compile time */
+ struct Declaration *params; /* parameters to struct, NULL if this struct has no parameters */
+ struct Instance *instance; /* instance of struct, NULL if this is not an instance. set during resolution. */
} struc;
};
} Type;
@@ -523,8 +525,10 @@ typedef struct FnExpr {
typedef struct Instance {
Value val;
- /* this holds the typed function */
- FnExpr fn;
+ union {
+ FnExpr fn; /* the typed function */
+ Type struc; /* the structure, resolved */
+ };
struct {
U64 id;
} c;