@@ -220,7 +220,7 @@ case MatchCall(JitMatchy _, var discriminant, _) -> {
220
220
private @ NotNull Doc visitDT (@ NotNull Outer outer , DepTypeTerm .UnpiNamed pair , Doc kw , Doc operator ) {
221
221
var params = pair .names ().zip (pair .params (), RichParam ::ofExplicit );
222
222
var body = pair .body ().instTeleVar (params .view ().map (ParamLike ::ref ));
223
- var teleDoc = visitTele (params , body , FindUsage :: free );
223
+ var teleDoc = visitTele (params , body );
224
224
var cod = term (Outer .Codomain , body );
225
225
var doc = Doc .sep (kw , teleDoc , operator , cod );
226
226
pair .names ().forEach (nameGen ::unbindName );
@@ -296,8 +296,8 @@ yield visitFn(defVar(def.ref()), def.modifiers(), absTele,
296
296
};
297
297
}
298
298
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 );
301
301
}
302
302
303
303
public @ NotNull Doc def (@ NotNull JitDef unit ) {
@@ -337,19 +337,20 @@ yield visitFn(defVar(def.ref()), def.modifiers(), absTele,
337
337
line1 .append (name );
338
338
339
339
var tele = enrich (telescope );
340
+ var subst = tele .<Term >map (x -> new FreeTerm (x .ref ()));
341
+ var result = telescope .result (subst );
342
+
340
343
line1 .append (visitTele (tele ));
341
344
line1 .append (HAS_TYPE );
342
-
343
- var subst = tele .<Term >map (x -> new FreeTerm (x .ref ()));
344
- line1 .append (term (Outer .Free , telescope .result (subst )));
345
+ line1 .append (term (Outer .Free , result ));
345
346
346
347
var line1Doc = Doc .sepNonEmpty (line1 );
347
348
return cont .apply (line1Doc , subst );
348
349
}
349
350
350
351
/// @param selfTele self tele of the constructor, unlike [JitCon], the data args/owner args should be supplied.
351
352
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 ));
353
354
}
354
355
355
356
private @ NotNull Doc visitCon (
@@ -382,7 +383,7 @@ yield visitFn(defVar(def.ref()), def.modifiers(), absTele,
382
383
var dataArgs = richDataTele .<Term >map (t -> new FreeTerm (t .ref ()));
383
384
384
385
var line1 = Doc .sepNonEmpty (KW_DATA , name ,
385
- visitTele (richDataTele ),
386
+ visitTele (richDataTele , null ),
386
387
HAS_TYPE ,
387
388
term (Outer .Free , telescope .result (dataArgs )));
388
389
var consDoc = dataDef .body ().view ().map (this ::def );
@@ -454,7 +455,7 @@ record VisitTele(@NotNull Doc tele, @NotNull LazyValue<Doc> result) { }
454
455
455
456
private @ NotNull VisitTele visitTele (@ NotNull AbstractTele tele ) {
456
457
var richTele = enrich (tele );
457
- var teleDoc = visitTele (richTele );
458
+ var teleDoc = visitTele (richTele , null );
458
459
459
460
return new VisitTele (teleDoc , LazyValue .of (() -> {
460
461
var binds = richTele .<Term >map (x -> new FreeTerm (x .ref ()));
0 commit comments