Skip to content

Commit b14db46

Browse files
authored
fix: doc comment above the variant field (#61)
In variants, move doc comments above variant fields.
1 parent 35816b1 commit b14db46

File tree

6 files changed

+29
-31
lines changed

6 files changed

+29
-31
lines changed

src/core/generate/rs/src/bindings/typescript_native/comments.rs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,6 @@ fn make_comment(docs: &[String]) -> Option<Comment> {
4242
span: DUMMY_SP,
4343
kind: CommentKind::Block,
4444
text: comment_text.into(),
45-
// swc_core 0.80+ uses None for comments attached to no specific position
46-
// If you want to attach to leading, set as Some(true)
47-
// For now, we use None
48-
// has_trailing_newline: false, // Only in newer swc
4945
})
5046
}
5147
}

src/core/generate/rs/src/bindings/typescript_native/new_typescript_native_types.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -567,7 +567,7 @@ fn create_variant_type(
567567

568568
// Create the __kind__ property
569569
let kind_prop = TsTypeElement::TsPropertySignature(TsPropertySignature {
570-
span,
570+
span: DUMMY_SP,
571571
readonly: false,
572572
key: Box::new(Expr::Ident(Ident::new(
573573
"__kind__".into(),
@@ -589,12 +589,13 @@ fn create_variant_type(
589589
})),
590590
});
591591

592-
// Create the value property
592+
// Create the value property (with doc comment)
593593
let value_prop = create_property_signature_for_variant(
594594
top_level_nodes,
595595
env,
596596
f,
597597
syntax_field_ty,
598+
span,
598599
);
599600

600601
Box::new(TsType::TsTypeLit(TsTypeLit {
@@ -874,6 +875,7 @@ fn create_property_signature_for_variant(
874875
env: &TypeEnv,
875876
field: &Field,
876877
syntax: Option<&IDLType>,
878+
span: Span,
877879
) -> TsTypeElement {
878880
let field_name = match &*field.id {
879881
Label::Named(str) => Box::new(Expr::Ident(get_ident_guarded_keyword_ok(str))),
@@ -913,7 +915,7 @@ fn create_property_signature_for_variant(
913915
};
914916

915917
TsTypeElement::TsPropertySignature(TsPropertySignature {
916-
span: DUMMY_SP,
918+
span,
917919
readonly: false,
918920
key: field_name,
919921
computed: false,

tests/snapshots/generate/example/example.d.ts.snapshot

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,21 @@ export interface None {
1818
}
1919
export type Option<T> = Some<T> | None;
2020
export type my_variant = {
21+
__kind__: "a";
2122
/**
2223
* Doc comment for my_variant field a
2324
*/
24-
__kind__: "a";
2525
a: {
2626
/**
2727
* Doc comment for my_variant field a field b
2828
*/
2929
b: string;
3030
};
3131
} | {
32+
__kind__: "c";
3233
/**
3334
* Doc comment for my_variant field c
3435
*/
35-
__kind__: "c";
3636
c: {
3737
d: string;
3838
e: Array<{
@@ -57,16 +57,16 @@ export interface nested {
5757
_42_: bigint;
5858
}
5959
export type res = {
60+
__kind__: "Ok";
6061
/**
6162
* Doc comment for Ok variant
6263
*/
63-
__kind__: "Ok";
6464
Ok: [bigint, bigint];
6565
} | {
66+
__kind__: "Err";
6667
/**
6768
* Doc comment for Err variant
6869
*/
69-
__kind__: "Err";
7070
Err: {
7171
/**
7272
* Doc comment for error field in Err variant,
@@ -86,18 +86,18 @@ export type nested_res = {
8686
} | {
8787
__kind__: "Err";
8888
Err: {
89+
__kind__: "Ok";
8990
/**
9091
* Doc comment for Ok in nested variant
9192
*/
92-
__kind__: "Ok";
9393
Ok: {
9494
content: string;
9595
};
9696
} | {
97+
__kind__: "Err";
9798
/**
9899
* Doc comment for Err in nested variant
99100
*/
100-
__kind__: "Err";
101101
Err: [bigint];
102102
};
103103
};

tests/snapshots/generate/example/example.ts.snapshot

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -52,21 +52,21 @@ function record_opt_to_undefined<T>(arg: T | null): T | undefined {
5252
return arg == null ? undefined : arg;
5353
}
5454
export type my_variant = {
55+
__kind__: "a";
5556
/**
5657
* Doc comment for my_variant field a
5758
*/
58-
__kind__: "a";
5959
a: {
6060
/**
6161
* Doc comment for my_variant field a field b
6262
*/
6363
b: string;
6464
};
6565
} | {
66+
__kind__: "c";
6667
/**
6768
* Doc comment for my_variant field c
6869
*/
69-
__kind__: "c";
7070
c: {
7171
d: string;
7272
e: Array<{
@@ -91,16 +91,16 @@ export interface nested {
9191
_42_: bigint;
9292
}
9393
export type res = {
94+
__kind__: "Ok";
9495
/**
9596
* Doc comment for Ok variant
9697
*/
97-
__kind__: "Ok";
9898
Ok: [bigint, bigint];
9999
} | {
100+
__kind__: "Err";
100101
/**
101102
* Doc comment for Err variant
102103
*/
103-
__kind__: "Err";
104104
Err: {
105105
/**
106106
* Doc comment for error field in Err variant,
@@ -120,18 +120,18 @@ export type nested_res = {
120120
} | {
121121
__kind__: "Err";
122122
Err: {
123+
__kind__: "Ok";
123124
/**
124125
* Doc comment for Ok in nested variant
125126
*/
126-
__kind__: "Ok";
127127
Ok: {
128128
content: string;
129129
};
130130
} | {
131+
__kind__: "Err";
131132
/**
132133
* Doc comment for Err in nested variant
133134
*/
134-
__kind__: "Err";
135135
Err: [bigint];
136136
};
137137
};

tests/snapshots/wasm-generate/example/example.d.ts.snapshot

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,21 @@ export interface None {
1010
}
1111
export type Option<T> = Some<T> | None;
1212
export type my_variant = {
13+
__kind__: "a";
1314
/**
1415
* Doc comment for my_variant field a
1516
*/
16-
__kind__: "a";
1717
a: {
1818
/**
1919
* Doc comment for my_variant field a field b
2020
*/
2121
b: string;
2222
};
2323
} | {
24+
__kind__: "c";
2425
/**
2526
* Doc comment for my_variant field c
2627
*/
27-
__kind__: "c";
2828
c: {
2929
d: string;
3030
e: Array<{
@@ -49,16 +49,16 @@ export interface nested {
4949
_42_: bigint;
5050
}
5151
export type res = {
52+
__kind__: "Ok";
5253
/**
5354
* Doc comment for Ok variant
5455
*/
55-
__kind__: "Ok";
5656
Ok: [bigint, bigint];
5757
} | {
58+
__kind__: "Err";
5859
/**
5960
* Doc comment for Err variant
6061
*/
61-
__kind__: "Err";
6262
Err: {
6363
/**
6464
* Doc comment for error field in Err variant,
@@ -78,18 +78,18 @@ export type nested_res = {
7878
} | {
7979
__kind__: "Err";
8080
Err: {
81+
__kind__: "Ok";
8182
/**
8283
* Doc comment for Ok in nested variant
8384
*/
84-
__kind__: "Ok";
8585
Ok: {
8686
content: string;
8787
};
8888
} | {
89+
__kind__: "Err";
8990
/**
9091
* Doc comment for Err in nested variant
9192
*/
92-
__kind__: "Err";
9393
Err: [bigint];
9494
};
9595
};

tests/snapshots/wasm-generate/example/example.ts.snapshot

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -44,21 +44,21 @@ function record_opt_to_undefined<T>(arg: T | null): T | undefined {
4444
return arg == null ? undefined : arg;
4545
}
4646
export type my_variant = {
47+
__kind__: "a";
4748
/**
4849
* Doc comment for my_variant field a
4950
*/
50-
__kind__: "a";
5151
a: {
5252
/**
5353
* Doc comment for my_variant field a field b
5454
*/
5555
b: string;
5656
};
5757
} | {
58+
__kind__: "c";
5859
/**
5960
* Doc comment for my_variant field c
6061
*/
61-
__kind__: "c";
6262
c: {
6363
d: string;
6464
e: Array<{
@@ -83,16 +83,16 @@ export interface nested {
8383
_42_: bigint;
8484
}
8585
export type res = {
86+
__kind__: "Ok";
8687
/**
8788
* Doc comment for Ok variant
8889
*/
89-
__kind__: "Ok";
9090
Ok: [bigint, bigint];
9191
} | {
92+
__kind__: "Err";
9293
/**
9394
* Doc comment for Err variant
9495
*/
95-
__kind__: "Err";
9696
Err: {
9797
/**
9898
* Doc comment for error field in Err variant,
@@ -112,18 +112,18 @@ export type nested_res = {
112112
} | {
113113
__kind__: "Err";
114114
Err: {
115+
__kind__: "Ok";
115116
/**
116117
* Doc comment for Ok in nested variant
117118
*/
118-
__kind__: "Ok";
119119
Ok: {
120120
content: string;
121121
};
122122
} | {
123+
__kind__: "Err";
123124
/**
124125
* Doc comment for Err in nested variant
125126
*/
126-
__kind__: "Err";
127127
Err: [bigint];
128128
};
129129
};

0 commit comments

Comments
 (0)