Skip to content

Commit 7e1ddf5

Browse files
committed
pretty: should pass in the result for fn visitTele
1 parent 6e5faae commit 7e1ddf5

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

Diff for: syntax/src/main/java/org/aya/prettier/CorePrettier.java

+11-10
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ case MatchCall(JitMatchy _, var discriminant, _) -> {
220220
private @NotNull Doc visitDT(@NotNull Outer outer, DepTypeTerm.UnpiNamed pair, Doc kw, Doc operator) {
221221
var params = pair.names().zip(pair.params(), RichParam::ofExplicit);
222222
var body = pair.body().instTeleVar(params.view().map(ParamLike::ref));
223-
var teleDoc = visitTele(params, body, FindUsage::free);
223+
var teleDoc = visitTele(params, body);
224224
var cod = term(Outer.Codomain, body);
225225
var doc = Doc.sep(kw, teleDoc, operator, cod);
226226
pair.names().forEach(nameGen::unbindName);
@@ -296,8 +296,8 @@ yield visitFn(defVar(def.ref()), def.modifiers(), absTele,
296296
};
297297
}
298298

299-
@Override public @NotNull Doc visitTele(@NotNull Seq<? extends ParamLike<Term>> telescope) {
300-
return visitTele(telescope, null, FindUsage::free);
299+
public @NotNull Doc visitTele(@NotNull Seq<? extends ParamLike<Term>> telescope, @Nullable Term body) {
300+
return visitTele(telescope, body, FindUsage::free);
301301
}
302302

303303
public @NotNull Doc def(@NotNull JitDef unit) {
@@ -337,19 +337,20 @@ yield visitFn(defVar(def.ref()), def.modifiers(), absTele,
337337
line1.append(name);
338338

339339
var tele = enrich(telescope);
340-
line1.append(visitTele(tele));
341-
line1.append(HAS_TYPE);
342-
343340
var subst = tele.<Term>map(x -> new FreeTerm(x.ref()));
344-
line1.append(term(Outer.Free, telescope.result(subst)));
341+
var result = telescope.result(subst);
342+
343+
line1.append(visitTele(tele, result));
344+
line1.append(HAS_TYPE);
345+
line1.append(term(Outer.Free, result));
345346

346347
var line1Doc = Doc.sepNonEmpty(line1);
347348
return cont.apply(line1Doc, subst);
348349
}
349350

350351
/// @param selfTele self tele of the constructor, unlike [JitCon], the data args/owner args should be supplied.
351352
private @NotNull Doc visitConRhs(@NotNull Doc name, boolean coerce, @NotNull AbstractTele selfTele) {
352-
return Doc.sepNonEmpty(coe(coerce), name, visitTele(enrich(selfTele)));
353+
return Doc.sepNonEmpty(coe(coerce), name, visitTele(enrich(selfTele), null));
353354
}
354355

355356
private @NotNull Doc visitCon(
@@ -382,7 +383,7 @@ yield visitFn(defVar(def.ref()), def.modifiers(), absTele,
382383
var dataArgs = richDataTele.<Term>map(t -> new FreeTerm(t.ref()));
383384

384385
var line1 = Doc.sepNonEmpty(KW_DATA, name,
385-
visitTele(richDataTele),
386+
visitTele(richDataTele, null),
386387
HAS_TYPE,
387388
term(Outer.Free, telescope.result(dataArgs)));
388389
var consDoc = dataDef.body().view().map(this::def);
@@ -454,7 +455,7 @@ record VisitTele(@NotNull Doc tele, @NotNull LazyValue<Doc> result) { }
454455

455456
private @NotNull VisitTele visitTele(@NotNull AbstractTele tele) {
456457
var richTele = enrich(tele);
457-
var teleDoc = visitTele(richTele);
458+
var teleDoc = visitTele(richTele, null);
458459

459460
return new VisitTele(teleDoc, LazyValue.of(() -> {
460461
var binds = richTele.<Term>map(x -> new FreeTerm(x.ref()));

0 commit comments

Comments
 (0)