feat: emit warning message when failed to copy default value
This commit is contained in:
parent
61b3e6bcb8
commit
39ce3044ec
1 changed files with 6 additions and 2 deletions
|
|
@ -381,19 +381,23 @@ private partial def copyDefaultValue? (fieldMap : FieldMap) (expandedStructNames
|
|||
let us ← mkFreshLevelMVarsFor cinfo
|
||||
go? (cinfo.instantiateValueLevelParams us)
|
||||
where
|
||||
failed : TermElabM (Option Expr) := do
|
||||
logWarning s!"ignoring default value for field '{fieldName}' defined at '{structName}'"
|
||||
return none
|
||||
|
||||
go? (e : Expr) : TermElabM (Option Expr) := do
|
||||
match e with
|
||||
| Expr.lam n d b c =>
|
||||
if c.binderInfo.isExplicit then
|
||||
let fieldName := n
|
||||
match fieldMap.find? n with
|
||||
| none => return none -- TODO Generate warning?
|
||||
| none => failed
|
||||
| some val =>
|
||||
let valType ← inferType val
|
||||
if (← isDefEq valType d) then
|
||||
go? (b.instantiate1 val)
|
||||
else
|
||||
return none -- TODO Generate warning?
|
||||
failed
|
||||
else
|
||||
let arg ← mkFreshExprMVar d
|
||||
go? (b.instantiate1 arg)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue