Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions src/Lean/Compiler/IR/ToIR.lean
Original file line number Diff line number Diff line change
Expand Up @@ -214,19 +214,15 @@ partial def lowerLet (decl : LCNF.LetDecl) (k : LCNF.Code) : M FnBody := do
| none => lowerCode k
loop 0 0
return .vdecl objVar type (.ctor ctorInfo objArgs) (← lowerNonObjectFields ())
| some (.axiomInfo ..) =>
throwNamedError lean.dependsOnNoncomputable f!"axiom '{name}' not supported by code generator; consider marking definition as 'noncomputable'"
| some (.quotInfo ..) =>
throwError f!"quot {name} unsupported by code generator"
| some (.defnInfo ..) | some (.opaqueInfo ..) =>
if let some code ← tryIrDecl? name irArgs then
return code
else
mkExpr (.fap name irArgs)
| some (.axiomInfo ..) | .some (.quotInfo ..) | .some (.inductInfo ..) | .some (.thmInfo ..) =>
throwNamedError lean.dependsOnNoncomputable f!"'{name}' not supported by code generator; consider marking definition as 'noncomputable'"
| some (.recInfo ..) =>
throwError f!"code generator does not support recursor '{name}' yet, consider using 'match ... with' and/or structural recursion"
| some (.inductInfo ..) => panic! "induct unsupported by code generator"
| some (.thmInfo ..) => panic! "thm unsupported by code generator"
| none => panic! "reference to unbound name"
| .fvar fvarId args =>
match (← get).fvars[fvarId]? with
Expand Down
2 changes: 1 addition & 1 deletion tests/lean/496.lean.expected.out
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
496.lean:3:4-3:8: error(lean.dependsOnNoncomputable): axiom 'foo' not supported by code generator; consider marking definition as 'noncomputable'
496.lean:3:4-3:8: error(lean.dependsOnNoncomputable): 'foo' not supported by code generator; consider marking definition as 'noncomputable'
496.lean:9:4-9:8: error(lean.dependsOnNoncomputable): failed to compile definition, consider marking it as 'noncomputable' because it depends on 'bla1', which is 'noncomputable'
Loading