Skip to content

Commit

Permalink
Add incomplete flag to jl_datatype_t
Browse files Browse the repository at this point in the history
  • Loading branch information
Keno committed Jul 22, 2019
1 parent 57111f6 commit 5e238db
Show file tree
Hide file tree
Showing 3 changed files with 8 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/datatype.c
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ jl_datatype_t *jl_new_uninitialized_datatype(void)
t->has_concrete_subtype = 1;
t->layout = NULL;
t->names = NULL;
t->incomplete = 0;
return t;
}

Expand Down
9 changes: 6 additions & 3 deletions src/jltypes.c
Original file line number Diff line number Diff line change
Expand Up @@ -1707,7 +1707,7 @@ void jl_init_types(void) JL_GC_DISABLED
jl_datatype_type->name->wrapper = (jl_value_t*)jl_datatype_type;
jl_datatype_type->super = (jl_datatype_t*)jl_type_type;
jl_datatype_type->parameters = jl_emptysvec;
jl_datatype_type->name->names = jl_perm_symsvec(21,
jl_datatype_type->name->names = jl_perm_symsvec(22,
"name",
"super",
"parameters",
Expand All @@ -1720,6 +1720,7 @@ void jl_init_types(void) JL_GC_DISABLED
"uid",
"abstract",
"mutable",
"incomplete",
"hasfreetypevars",
"isconcretetype",
"isdispatchtuple",
Expand All @@ -1729,12 +1730,13 @@ void jl_init_types(void) JL_GC_DISABLED
"has_concrete_subtype",
"llvm::StructType",
"llvm::DIType");
jl_datatype_type->types = jl_svec(21,
jl_datatype_type->types = jl_svec(22,
jl_typename_type,
jl_datatype_type,
jl_simplevector_type,
jl_simplevector_type, jl_simplevector_type,
jl_any_type, // instance
jl_any_type,
jl_any_type, jl_any_type, jl_any_type, jl_any_type,
jl_any_type, jl_any_type, jl_any_type, jl_any_type,
jl_any_type, jl_any_type, jl_any_type, jl_any_type,
Expand Down Expand Up @@ -2297,8 +2299,9 @@ void jl_init_types(void) JL_GC_DISABLED
jl_svecset(jl_datatype_type->types, 16, jl_bool_type);
jl_svecset(jl_datatype_type->types, 17, jl_bool_type);
jl_svecset(jl_datatype_type->types, 18, jl_bool_type);
jl_svecset(jl_datatype_type->types, 19, jl_voidpointer_type);
jl_svecset(jl_datatype_type->types, 19, jl_bool_type);
jl_svecset(jl_datatype_type->types, 20, jl_voidpointer_type);
jl_svecset(jl_datatype_type->types, 21, jl_voidpointer_type);
jl_svecset(jl_typename_type->types, 1, jl_module_type);
jl_svecset(jl_typename_type->types, 6, jl_long_type);
jl_svecset(jl_typename_type->types, 3, jl_type_type);
Expand Down
1 change: 1 addition & 0 deletions src/julia.h
Original file line number Diff line number Diff line change
Expand Up @@ -439,6 +439,7 @@ typedef struct _jl_datatype_t {
uint32_t uid;
uint8_t abstract;
uint8_t mutabl;
uint8_t incomplete; // If 1, this dt is not yet complete.
// memoized properties
uint8_t hasfreetypevars; // majority part of isconcrete computation
uint8_t isconcretetype; // whether this type can have instances
Expand Down

0 comments on commit 5e238db

Please sign in to comment.