Skip to content

Commit fa17ce3

Browse files
committed
Allow calling Any as function
Fix #38.
1 parent d90ff42 commit fa17ce3

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

src/typechecker.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -605,6 +605,11 @@ impl TypeChecker {
605605
Some(func_type) => func_type,
606606
}
607607
}
608+
Type::Any => {
609+
// Don't know anything about this type. Allow it to be called
610+
// as func, and then assume the return type is Any.
611+
return Some(Type::Any);
612+
}
608613
v => {
609614
if let Expr::Identifier(ref id) = expr.data {
610615
self.issues

tests/typecheck-fail/call-any.bl

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
var x = 5;
2+
if true {
3+
x = fn () {};
4+
} else {
5+
x = 10;
6+
}
7+
8+
x();

tests/typecheck-fail/call-any.err

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[(MultipleTypesFromBranchWarning("x"), (11, 63))]

0 commit comments

Comments
 (0)