Skip to content

Compiler doesn't fully handle return statements in control flow #1663

@Ferret-san

Description

@Ferret-san

Found this issue while compiling a predicate:
This compiles:

if let Result::Ok(address) = result_address {
        true
} else {
       false
}

image

However, this doesn't:

if let Result::Ok(address) = result_address {
        return true
} else {
        return false
}

image

Likewise, this doesn't compile either:

if let Result::Ok(address) = result_address {
        return true;
} else {
        return false;
};

image

Metadata

Metadata

Assignees

Labels

P: highShould be looked at if there are no critical issues leftbugSomething isn't workingcompiler: frontendEverything to do with type checking, control flow analysis, and everything between parsing and IRgenteam:compilerCompiler Team

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions