Browse Source

Fix issue that conflicts with constant parapoly procedures and `deferred_*` procedures

gingerBill 2 years ago
parent
commit
20eacc4a84
2 changed files with 2 additions and 16 deletions
  1. 0 13
      src/check_decl.cpp
  2. 2 3
      src/check_expr.cpp

+ 0 - 13
src/check_decl.cpp

@@ -1532,19 +1532,6 @@ gb_internal bool check_proc_body(CheckerContext *ctx_, Token token, DeclInfo *de
 					break;
 				}
 			}
-
-			// Add constant data to the identifier directly
-			for (Entity *e : params->variables) {
-				if (e->kind == Entity_Constant) {
-					Ast *ident = e->identifier.load();
-					if (ident) {
-						add_entity(ctx, e->scope, ident, e);
-						ident->tav.mode = Addressing_Constant;
-						ident->tav.value = e->Constant.value;
-						ident->tav.type = e->type;
-					}
-				}
-			}
 		}
 	}
 

+ 2 - 3
src/check_expr.cpp

@@ -5418,9 +5418,8 @@ gb_internal CALL_ARGUMENT_CHECKER(check_call_arguments_internal) {
 		data->score = score;
 		data->result_type = final_proc_type->Proc.results;
 		data->gen_entity = gen_entity;
-		if (!are_types_identical(final_proc_type, ce->proc->tav.type)) {
-			add_type_and_value(c, ce->proc, Addressing_Value, final_proc_type, {});
-		}
+
+		add_type_and_value(c, ce->proc, Addressing_Value, final_proc_type, {});
 	}
 
 	return err;