feat: improve error message

This commit is contained in:
Leonardo de Moura 2020-12-22 17:50:26 -08:00
parent 8c2cb44ac0
commit df03130927
3 changed files with 8 additions and 0 deletions

View file

@ -448,6 +448,9 @@ private def addDefaults (lctx : LocalContext) (defaultAuxDecls : Array (Name ×
setReducibleAttribute declName
private def elabStructureView (view : StructView) : TermElabM Unit := do
view.fields.forM fun field => do
if field.declName == view.ctor.declName then
throwErrorAt! field.ref "invalid field name '{field.name}', it is equal to structure constructor name"
let numExplicitParams := view.params.size
let type ← Term.elabType view.type
unless validStructType type do throwErrorAt view.type "expected Type"

View file

@ -0,0 +1,4 @@
structure Map (α β : Type) where
map : Type
mk : map
insert : map → α → β → map

View file

@ -0,0 +1 @@
invalidFieldName.lean:3:2: error: invalid field name 'mk', it is equal to structure constructor name