mirror of
https://github.com/fluencelabs/assemblyscript
synced 2025-04-26 07:22:21 +00:00
Emit a proper error when trying to return a value from a void function, fixes #142
This commit is contained in:
parent
02e0a91070
commit
7ed55f7ea6
2
dist/assemblyscript.js
vendored
2
dist/assemblyscript.js
vendored
File diff suppressed because one or more lines are too long
2
dist/assemblyscript.js.map
vendored
2
dist/assemblyscript.js.map
vendored
File diff suppressed because one or more lines are too long
@ -1755,6 +1755,15 @@ export class Compiler extends DiagnosticEmitter {
|
||||
|
||||
if (statement.value) {
|
||||
let returnType = flow.returnType;
|
||||
if (returnType == Type.void) {
|
||||
this.compileExpressionRetainType(statement.value, returnType, WrapMode.NONE);
|
||||
this.error(
|
||||
DiagnosticCode.Type_0_is_not_assignable_to_type_1,
|
||||
statement.value.range, this.currentType.toString(), returnType.toString()
|
||||
);
|
||||
this.currentType = Type.void;
|
||||
return module.createUnreachable();
|
||||
}
|
||||
expr = this.compileExpression(
|
||||
statement.value,
|
||||
returnType,
|
||||
|
Loading…
x
Reference in New Issue
Block a user