lean4-htt/tests/lean/interactive
Kyle Miller 9f4075be72
fix: refine how named arguments suppress explicit arguments (#5283)
Recall that currently named arguments suppress all explicit parameters
that are dependencies. This PR limits this feature to only apply to true
structure projections, except in the case where it is triggered when
there are no more positional arguments. This preserves the primary
reason for generalizing this feature (issue #1851), while removing the
generalized feature, which has led to numerous confusions (issue #1867).
This also fixes a bug pointed out [on
Zulip](https://leanprover.zulipchat.com/#narrow/stream/270676-lean4/topic/.40foo.20.28A.20.3A.3D.20bar.29.20_.20_/near/468564862)
where in `@` mode, instance implicit parameter dependencies to named
arguments would be suppressed unless the next positional argument was
`_`.

More detail:
* The `NamedArg` structure now has a `suppressDeps : Bool` field. It is
set to `true` for the `self` argument in structure projections. If there
is such a `NamedArg`, explicit parameters that are dependencies to the
named argument are turned into implicit arguments. The consequence is
that *all* structure projections are treated as if their type parameters
are implicit, even for class projections. This flag is *not* used for
generalized field notation.
* We preserve the suppression feature when there are no positional
arguments remaining. This feature pre-dates the fix to issue #1851, and
it is useful when combining named arguments and the eta expansion
feature, since dependencies of named arguments cannot be turned into eta
arguments. Plus, there are examples of the form `rw [lem (h := foo)]`
where `lem` has explicit arguments that `h` depends on.
* For instance implicit parameters in explicit mode, now `_` arguments
register terminfo and are hoverable.
* Now `..` is respected in explicit mode.

This implements RFC #5397. The `suppressDeps` flag suggests a future
possibility of a named argument syntax that can suppress dependencies.
2024-09-27 20:14:29 +00:00
..
533.lean
533.lean.expected.out
863.lean
863.lean.expected.out
1031.lean
1031.lean.expected.out
1265.lean
1265.lean.expected.out
1403.lean
1403.lean.expected.out
1525.lean
1525.lean.expected.out
1659.lean
1659.lean.expected.out
2058.lean feat: localize universe metavariable errors at let bindings and fun binders (#5402) 2024-09-24 05:30:42 +00:00
2058.lean.expected.out feat: localize universe metavariable errors at let bindings and fun binders (#5402) 2024-09-24 05:30:42 +00:00
4078.lean
4078.lean.expected.out
4880.lean fix: ensure autoparam errors have correct positions (#4926) 2024-08-06 22:27:51 +00:00
4880.lean.expected.out feat: have autoparams report parameter/field on failure (#5474) 2024-09-27 19:00:59 +00:00
amb.lean
amb.lean.expected.out
anonHyp.lean
anonHyp.lean.expected.out
autoBoundIssue.lean
autoBoundIssue.lean.expected.out
catHover.lean chore: fix spelling mistakes in tests (#5439) 2024-09-24 03:22:53 +00:00
catHover.lean.expected.out chore: fix spelling mistakes in tests (#5439) 2024-09-24 03:22:53 +00:00
codeaction.lean
codeaction.lean.expected.out
compHeader.lean
compHeader.lean.expected.out
completion.lean
completion.lean.expected.out
completion2.lean
completion2.lean.expected.out
completion3.lean
completion3.lean.expected.out
completion4.lean
completion4.lean.expected.out
completion5.lean
completion5.lean.expected.out
completion6.lean
completion6.lean.expected.out
completion7.lean
completion7.lean.expected.out
completionAtPrint.lean
completionAtPrint.lean.expected.out
completionBracketedDot.lean fix: travelling auto-completion (#5257) 2024-09-10 07:26:44 +00:00
completionBracketedDot.lean.expected.out fix: travelling auto-completion (#5257) 2024-09-10 07:26:44 +00:00
completionCheck.lean
completionCheck.lean.expected.out
completionDocString.lean
completionDocString.lean.expected.out
completionEOF.lean
completionEOF.lean.expected.out
completionFallback.lean feat: completion fallback (#5299) 2024-09-12 16:09:20 +00:00
completionFallback.lean.expected.out feat: completion fallback (#5299) 2024-09-12 16:09:20 +00:00
completionFromExpectedType.lean
completionFromExpectedType.lean.expected.out
completionIStr.lean
completionIStr.lean.expected.out
completionOpenNamespaces.lean
completionOpenNamespaces.lean.expected.out
completionOption.lean
completionOption.lean.expected.out
completionPrefixIssue.lean
completionPrefixIssue.lean.expected.out
completionPrivateTypes.lean
completionPrivateTypes.lean.expected.out
completionPrv.lean
completionPrv.lean.expected.out feat: more of BitVec.getElem_* (#5404) 2024-09-24 08:04:39 +00:00
compNamespace.lean
compNamespace.lean.expected.out
definition.lean
definition.lean.expected.out
Diff.lean
Diff.lean.expected.out
discrsIssue.lean
discrsIssue.lean.expected.out
dotIdCompletion.lean
dotIdCompletion.lean.expected.out
editAfterError.lean feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
editAfterError.lean.expected.out feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
editCompletion.lean feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
editCompletion.lean.expected.out feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
expectedTypeAsGoal.lean
expectedTypeAsGoal.lean.expected.out
explicitAppInstHole.lean fix: refine how named arguments suppress explicit arguments (#5283) 2024-09-27 20:14:29 +00:00
explicitAppInstHole.lean.expected.out fix: refine how named arguments suppress explicit arguments (#5283) 2024-09-27 20:14:29 +00:00
foldingRange.lean
foldingRange.lean.expected.out
goalEOF.lean
goalEOF.lean.expected.out
goalIssue.lean
goalIssue.lean.expected.out
goTo.lean
goTo.lean.expected.out
goTo2.lean
goTo2.lean.expected.out
haveInfo.lean feat: incremental have (#4308) 2024-06-04 09:12:27 +00:00
haveInfo.lean.expected.out feat: incremental have (#4308) 2024-06-04 09:12:27 +00:00
highlight.lean
highlight.lean.expected.out
hover.lean
hover.lean.expected.out fix: make cdot anonymous function notation handle ambiguous notation (#4833) 2024-08-09 21:16:51 +00:00
hoverAt.lean
hoverAt.lean.expected.out
hoverBinderUndescore.lean
hoverBinderUndescore.lean.expected.out
hoverDot.lean
hoverDot.lean.expected.out feat: add missing theorems for + 1 and - 1 normal form (#4242) 2024-06-17 05:35:32 +00:00
hoverException.lean
hoverException.lean.expected.out feat: @[builtin_doc] attribute (part 2) (#3918) 2024-09-13 08:05:10 +00:00
hoverTacticExt.lean feat: more infrastructure for tactic documentation (#4490) 2024-06-21 12:49:30 +00:00
hoverTacticExt.lean.expected.out feat: more infrastructure for tactic documentation (#4490) 2024-06-21 12:49:30 +00:00
incrementalCombinator.lean fix: disable incrementality in case .. | .. (#5090) 2024-08-19 09:17:03 +00:00
incrementalCombinator.lean.expected.out fix: disable incrementality in case .. | .. (#5090) 2024-08-19 09:17:03 +00:00
incrementalCommand.lean fix: changing whitespace after module header may break subsequent commands (#5312) 2024-09-11 13:00:42 +00:00
incrementalCommand.lean.expected.out fix: changing whitespace after module header may break subsequent commands (#5312) 2024-09-11 13:00:42 +00:00
incrementalInduction.lean feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
incrementalInduction.lean.expected.out feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
incrementalMutual.lean fix: calculate error suppression per snapshot (#4657) 2024-07-08 09:54:43 +00:00
incrementalMutual.lean.expected.out fix: calculate error suppression per snapshot (#4657) 2024-07-08 09:54:43 +00:00
incrementalTactic.lean fix: calculate error suppression per snapshot (#4657) 2024-07-08 09:54:43 +00:00
incrementalTactic.lean.expected.out feat: PProd syntax (part 3) (#4756) 2024-07-16 21:06:04 +00:00
infoIssues.lean
infoIssues.lean.expected.out
internalNamesIssue.lean
internalNamesIssue.lean.expected.out
inWordCompletion.lean
inWordCompletion.lean.expected.out
issue4527.lean fix: cdot parser error message range (#4528) 2024-06-21 15:06:07 +00:00
issue4527.lean.expected.out fix: cdot parser error message range (#4528) 2024-06-21 15:06:07 +00:00
issue5021.lean fix: hover text over _ in ?_ (#5118) 2024-08-21 20:47:19 +00:00
issue5021.lean.expected.out fix: hover text over _ in ?_ (#5118) 2024-08-21 20:47:19 +00:00
jumpMutual.lean
jumpMutual.lean.expected.out
keywordCompletion.lean
keywordCompletion.lean.expected.out
lean3HoverIssue.lean
lean3HoverIssue.lean.expected.out
macroGoalIssue.lean
macroGoalIssue.lean.expected.out
match.lean
match.lean.expected.out
matchPatternHover.lean
matchPatternHover.lean.expected.out
matchStxCompletion.lean
matchStxCompletion.lean.expected.out
partialNamespace.lean
partialNamespace.lean.expected.out
plainGoal.lean
plainGoal.lean.expected.out fix: discrepancy theorem vs example (#4493) 2024-06-24 01:18:41 +00:00
plainTermGoal.lean
plainTermGoal.lean.expected.out
rename.lean
rename.lean.expected.out
run.lean chore: move Lean.Data.Parsec to Std.Internal.Parsec (#5115) 2024-08-21 15:26:17 +00:00
stdOutput.lean
stdOutput.lean.expected.out
terminationBySuggestion.lean feat: termination_by structural (#4542) 2024-07-01 16:51:30 +00:00
terminationBySuggestion.lean.expected.out feat: termination_by structural (#4542) 2024-07-01 16:51:30 +00:00
test_single.sh
travellingCompletions.lean fix: travelling auto-completion (#5257) 2024-09-10 07:26:44 +00:00
travellingCompletions.lean.expected.out fix: travelling auto-completion (#5257) 2024-09-10 07:26:44 +00:00
unterminatedDocComment.lean feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
unterminatedDocComment.lean.expected.out feat: incremental elaboration of definition headers, bodies, and tactics (#3940) 2024-05-22 13:23:30 +00:00
userWidget.lean
userWidget.lean.expected.out