mirror of
https://github.com/nushell/nushell.git
synced 2025-06-30 14:40:06 +02:00
Fix default argument value type checking (#10460)
# Description Fix type checking in arguments default values not adhering to subtyping rules Currently following examples produce a parse error: ```nu def test [ --qwe: record<a: int> = {a: 1 b: 1} ] { } def test [ --qwe: list<any> = [ 1 2 3 ] ] { } ``` despite types matching. Type equality check is replaced with subtyping check and everything parses fine: # User-Facing Changes Default values of flag arguments type checking behavior is in line with `let` statements
This commit is contained in:
@ -3838,7 +3838,7 @@ pub fn parse_signature_helper(working_set: &mut StateWorkingSet, span: Span) ->
|
||||
}
|
||||
}
|
||||
t => {
|
||||
if t != &expression_ty {
|
||||
if !type_compatible(t, &expression_ty) {
|
||||
working_set.error(
|
||||
ParseError::AssignmentMismatch(
|
||||
"Default value is the wrong type"
|
||||
|
Reference in New Issue
Block a user