Skip to content

Commit c8c394c

Browse files
committed
Use lower camel case names for error types in Swift bindings
1 parent 286de8d commit c8c394c

File tree

3 files changed

+30
-30
lines changed

3 files changed

+30
-30
lines changed

fixtures/error-types/tests/bindings/test.swift

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,76 +22,76 @@ do {
2222
try oopsEnum(i: 0)
2323
fatalError("Should have thrown")
2424
} catch let e as Error {
25-
assert(e == Error.Oops)
26-
assert(String(describing: e) == "Oops")
27-
assert(String(reflecting: e) == "error_types.Error.Oops")
25+
assert(e == Error.oops)
26+
assert(String(describing: e) == "oops")
27+
assert(String(reflecting: e) == "error_types.Error.oops")
2828
}
2929
do {
3030
try oopsEnum(i: 0)
3131
fatalError("Should have thrown")
3232
} catch {
33-
assert(String(describing: error) == "Oops")
34-
assert(String(reflecting: error) == "error_types.Error.Oops")
35-
assert(error.localizedDescription == "error_types.Error.Oops")
33+
assert(String(describing: error) == "oops")
34+
assert(String(reflecting: error) == "error_types.Error.oops")
35+
assert(error.localizedDescription == "error_types.Error.oops")
3636
}
3737

3838
do {
3939
try oopsEnum(i: 1)
4040
fatalError("Should have thrown")
4141
} catch {
42-
assert(String(describing: error) == "Value(value: \"value\")")
43-
assert(String(reflecting: error) == "error_types.Error.Value(value: \"value\")")
44-
assert(error.localizedDescription == "error_types.Error.Value(value: \"value\")")
42+
assert(String(describing: error) == "value(value: \"value\")")
43+
assert(String(reflecting: error) == "error_types.Error.value(value: \"value\")")
44+
assert(error.localizedDescription == "error_types.Error.value(value: \"value\")")
4545
}
4646

4747
do {
4848
try oopsEnum(i: 2)
4949
fatalError("Should have thrown")
5050
} catch {
51-
assert(String(describing: error) == "IntValue(value: 2)")
52-
assert(String(reflecting: error) == "error_types.Error.IntValue(value: 2)")
53-
assert(error.localizedDescription == "error_types.Error.IntValue(value: 2)")
51+
assert(String(describing: error) == "intValue(value: 2)")
52+
assert(String(reflecting: error) == "error_types.Error.intValue(value: 2)")
53+
assert(error.localizedDescription == "error_types.Error.intValue(value: 2)")
5454
}
5555

5656
do {
5757
try oopsEnum(i: 3)
5858
fatalError("Should have thrown")
5959
} catch let e as Error {
60-
assert(String(describing: e) == "FlatInnerError(error: error_types.FlatInner.CaseA(message: \"inner\"))")
61-
assert(String(reflecting: e) == "error_types.Error.FlatInnerError(error: error_types.FlatInner.CaseA(message: \"inner\"))")
60+
assert(String(describing: e) == "flatInnerError(error: error_types.FlatInner.caseA(message: \"inner\"))")
61+
assert(String(reflecting: e) == "error_types.Error.flatInnerError(error: error_types.FlatInner.caseA(message: \"inner\"))")
6262
}
6363

6464
do {
6565
try oopsEnum(i: 4)
6666
fatalError("Should have thrown")
6767
} catch let e as Error {
68-
assert(String(describing: e) == "FlatInnerError(error: error_types.FlatInner.CaseB(message: \"NonUniffiTypeValue: value\"))")
69-
assert(String(reflecting: e) == "error_types.Error.FlatInnerError(error: error_types.FlatInner.CaseB(message: \"NonUniffiTypeValue: value\"))")
68+
assert(String(describing: e) == "flatInnerError(error: error_types.FlatInner.caseB(message: \"NonUniffiTypeValue: value\"))")
69+
assert(String(reflecting: e) == "error_types.Error.flatInnerError(error: error_types.FlatInner.caseB(message: \"NonUniffiTypeValue: value\"))")
7070
}
7171

7272
do {
7373
try oopsEnum(i: 5)
7474
fatalError("Should have thrown")
7575
} catch let e as Error {
76-
assert(String(describing: e) == "InnerError(error: error_types.Inner.CaseA(\"inner\"))")
76+
assert(String(describing: e) == "innerError(error: error_types.Inner.caseA(\"inner\"))")
7777
}
7878

7979
do {
8080
try oopsTuple(i: 0)
8181
fatalError("Should have thrown")
8282
} catch {
83-
assert(String(describing: error) == "Oops(\"oops\")")
84-
assert(String(reflecting: error) == "error_types.TupleError.Oops(\"oops\")")
85-
assert(error.localizedDescription == "error_types.TupleError.Oops(\"oops\")")
83+
assert(String(describing: error) == "oops(\"oops\")")
84+
assert(String(reflecting: error) == "error_types.TupleError.oops(\"oops\")")
85+
assert(error.localizedDescription == "error_types.TupleError.oops(\"oops\")")
8686
}
8787

8888
do {
8989
try oopsTuple(i: 1)
9090
fatalError("Should have thrown")
9191
} catch {
92-
assert(String(describing: error) == "Value(1)")
93-
assert(String(reflecting: error) == "error_types.TupleError.Value(1)")
94-
assert(error.localizedDescription == "error_types.TupleError.Value(1)")
92+
assert(String(describing: error) == "value(1)")
93+
assert(String(reflecting: error) == "error_types.TupleError.value(1)")
94+
assert(error.localizedDescription == "error_types.TupleError.value(1)")
9595
}
9696

9797
do {

uniffi_bindgen/src/bindings/swift/gen_swift/mod.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -748,9 +748,9 @@ pub mod filters {
748748
Ok(quote_general_keyword(oracle().enum_variant_name(nm)))
749749
}
750750

751-
/// Like enum_variant_swift_quoted, but a class name.
751+
/// Same as enum_variant_swift_quoted, because error types are exported as Swift enums.
752752
pub fn error_variant_swift_quoted(nm: &str) -> Result<String, rinja::Error> {
753-
Ok(quote_general_keyword(oracle().class_name(nm)))
753+
Ok(quote_general_keyword(oracle().enum_variant_name(nm)))
754754
}
755755

756756
/// Get the idiomatic Swift rendering of an FFI callback function name

uniffi_bindgen/src/bindings/swift/templates/ErrorTemplate.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ public enum {{ type_name }} {
44
{% if e.is_flat() %}
55
{% for variant in e.variants() %}
66
{%- call swift::docstring(variant, 4) %}
7-
case {{ variant.name()|class_name }}(message: String)
7+
case {{ variant.name()|error_variant_swift_quoted }}(message: String)
88
{% endfor %}
99

1010
{%- else %}
1111
{% for variant in e.variants() %}
1212
{%- call swift::docstring(variant, 4) %}
13-
case {{ variant.name()|class_name }}{% if variant.fields().len() > 0 %}(
13+
case {{ variant.name()|error_variant_swift_quoted }}{% if variant.fields().len() > 0 %}(
1414
{%- call swift::field_list_decl(variant, variant.has_nameless_fields()) %}
1515
){% endif -%}
1616
{% endfor %}
@@ -32,7 +32,7 @@ public struct {{ ffi_converter_name }}: FfiConverterRustBuffer {
3232
{% if e.is_flat() %}
3333

3434
{% for variant in e.variants() %}
35-
case {{ loop.index }}: return .{{ variant.name()|class_name }}(
35+
case {{ loop.index }}: return .{{ variant.name()|error_variant_swift_quoted }}(
3636
message: try {{ Type::String.borrow()|read_fn }}(from: &buf)
3737
)
3838
{% endfor %}
@@ -63,7 +63,7 @@ public struct {{ ffi_converter_name }}: FfiConverterRustBuffer {
6363
{% if e.is_flat() %}
6464

6565
{% for variant in e.variants() %}
66-
case .{{ variant.name()|class_name }}(_ /* message is ignored*/):
66+
case .{{ variant.name()|error_variant_swift_quoted }}(_ /* message is ignored*/):
6767
writeInt(&buf, Int32({{ loop.index }}))
6868
{%- endfor %}
6969

@@ -77,7 +77,7 @@ public struct {{ ffi_converter_name }}: FfiConverterRustBuffer {
7777
{{ field|write_fn }}({% call swift::field_name(field, loop.index) %}, into: &buf)
7878
{% endfor -%}
7979
{% else %}
80-
case .{{ variant.name()|class_name }}:
80+
case .{{ variant.name()|error_variant_swift_quoted }}:
8181
writeInt(&buf, Int32({{ loop.index }}))
8282
{% endif %}
8383
{%- endfor %}

0 commit comments

Comments
 (0)