[fuzz-tested] segfault @[try_suggestion] accepts a suggester whose type gained section variables in a mutual block

Ouverte
#15,744 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
48/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Active
Domaine
compilers

Piste de recherche

Start with the reproducer in the issue and inspect how @[try_suggestion] handles suggester declarations inside a mutual block, especially when a type gains section variables. Run the reproducer to confirm the segfault, then trace the relevant elaboration or registration path. Done means the example completes without a segfault and the suggestion behavior remains correct; the issue names no source file or test.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

bug P-low

The following code:

import Lean.Elab.Tactic.Try
open Lean Meta Elab Tactic
opaque P : Prop
axiom p : P
variable {α : Type} [Inhabited α]
mutual
def usesVar : α := default
@[try_suggestion]
def sugg (goal : MVarId) (_ : Try.Info) : MetaM (Array (TSyntax `tactic)) := goal.withContext do
  let term ← PrettyPrinter.delab (mkConst ``p)
  return #[← `(tactic| exact $term)]
end
example : P := by try?

Resulted in this output:

Segmentation fault (core dumped)        (exit code 139)
Langage dominant
Lean
Étoiles
9.8k
Forks
1.1k
Merge moyen
14 h 10 min
PR mergées (30 j)
348

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de leanprover/lean4

Toutes les issues de leanprover/lean4

Issues similaires

Plus d'issues Compilers

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.