Skip to content

Commit 05252bc

Browse files
committed
fix some warnings
1 parent 232ace5 commit 05252bc

2 files changed

Lines changed: 9 additions & 9 deletions

File tree

‎Emitters/SharedEmitter.cs‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -559,7 +559,7 @@ void EmitTypeScriptType(DatatypeInfo dt)
559559
Sb.AppendLine($"export interface {name}{typeParamStr} {{");
560560
foreach (var field in ctor.Fields)
561561
{
562-
var tsType = TypeMapper.TypeRefToTypeScript(field.Type);
562+
var tsType = TypeMapper.TypeRefToTypeScript(field.Type, preserveTypeParams: true);
563563
Sb.AppendLine($" {field.Name}: {tsType};");
564564
}
565565
Sb.AppendLine("}");
@@ -581,7 +581,7 @@ void EmitTypeScriptType(DatatypeInfo dt)
581581
else
582582
{
583583
var fields = string.Join("; ", ctor.Fields.Select(f =>
584-
$"{f.Name}: {TypeMapper.TypeRefToTypeScript(f.Type)}"));
584+
$"{f.Name}: {TypeMapper.TypeRefToTypeScript(f.Type, preserveTypeParams: true)}"));
585585
Sb.AppendLine($"{prefix}{{ type: '{ctor.Name}'; {fields} }}{suffix}");
586586
}
587587
}

‎TypeMapper.cs‎

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,29 @@ public static string SanitizeForJs(string name)
2424
/// <summary>
2525
/// Convert a Dafny TypeRef to a TypeScript type string (JSON representation).
2626
/// </summary>
27-
public static string TypeRefToTypeScript(TypeRef type)
27+
public static string TypeRefToTypeScript(TypeRef type, bool preserveTypeParams = false)
2828
{
2929
return type.Kind switch
3030
{
3131
TypeKind.Int => "number",
3232
TypeKind.Bool => "boolean",
3333
TypeKind.String => "string",
3434
TypeKind.Seq => type.TypeArgs.Count > 0
35-
? $"{TypeRefToTypeScript(type.TypeArgs[0])}[]"
35+
? $"{TypeRefToTypeScript(type.TypeArgs[0], preserveTypeParams)}[]"
3636
: "unknown[]",
3737
TypeKind.Set => type.TypeArgs.Count > 0
38-
? $"{TypeRefToTypeScript(type.TypeArgs[0])}[]"
38+
? $"{TypeRefToTypeScript(type.TypeArgs[0], preserveTypeParams)}[]"
3939
: "unknown[]",
4040
TypeKind.Map => type.TypeArgs.Count >= 2
41-
? $"Record<string, {TypeRefToTypeScript(type.TypeArgs[1])}>"
41+
? $"Record<string, {TypeRefToTypeScript(type.TypeArgs[1], preserveTypeParams)}>"
4242
: "Record<string, unknown>",
4343
TypeKind.Tuple => type.TypeArgs.Count > 0
44-
? $"[{string.Join(", ", type.TypeArgs.Select(TypeRefToTypeScript))}]"
44+
? $"[{string.Join(", ", type.TypeArgs.Select(a => TypeRefToTypeScript(a, preserveTypeParams)))}]"
4545
: "unknown[]",
4646
TypeKind.Datatype => type.TypeArgs.Count > 0
47-
? $"{SanitizeForJs(type.Name)}<{string.Join(", ", type.TypeArgs.Select(TypeRefToTypeScript))}>"
47+
? $"{SanitizeForJs(type.Name)}<{string.Join(", ", type.TypeArgs.Select(a => TypeRefToTypeScript(a, preserveTypeParams)))}>"
4848
: SanitizeForJs(type.Name),
49-
TypeKind.TypeParam => "unknown", // Type params not in scope, use unknown
49+
TypeKind.TypeParam => preserveTypeParams ? type.Name : "unknown",
5050
_ => "unknown"
5151
};
5252
}

0 commit comments

Comments
 (0)