aboutsummaryrefslogtreecommitdiff
path: root/src/check_type.cpp
diff options
context:
space:
mode:
authorgingerBill <bill@gingerbill.org>2019-03-30 10:43:53 +0000
committergingerBill <bill@gingerbill.org>2019-03-30 10:43:53 +0000
commit7580ec494b144d85bf96af114d32fc60f0f8c0ad (patch)
tree7d53c390c7f6017be2ab899ba94b5b6614c834cc /src/check_type.cpp
parenta9b20c29b1ade46d82ab6c62dfcf9148d86daae0 (diff)
Disallow ambiguous singularly variadic polymorphic parameters #361
Diffstat (limited to 'src/check_type.cpp')
-rw-r--r--src/check_type.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/check_type.cpp b/src/check_type.cpp
index 1721ed881..22cd409ee 100644
--- a/src/check_type.cpp
+++ b/src/check_type.cpp
@@ -1570,6 +1570,12 @@ Type *check_get_params(CheckerContext *ctx, Scope *scope, Ast *_params, bool *is
if (operands != nullptr && variables.count < operands->count) {
Operand op = (*operands)[variables.count];
+ if (op.expr == nullptr) {
+ // NOTE(bill): 2019-03-30
+ // This is just to add the error message to determine_type_from_polymorphic which
+ // depends on valid position information
+ op.expr = _params;
+ }
if (is_type_polymorphic_type) {
type = determine_type_from_polymorphic(ctx, type, op);
if (type == t_invalid) {