welder 0.1.0
Bindings for annotated C++ types, from C++26 reflection
Loading...
Searching...
No Matches
diag.hpp
Go to the documentation of this file.
1#pragma once
2
24
25namespace welder::inline v0::diag {
26
32 const char* what =
33 "welder: this lang value is not a language-mask bit index (it lies "
34 "past the 32-bit mask); mint user languages with "
35 "welder::user_lang<Slot>, which cannot go out of range";
36};
37
43 const char* what =
44 "welder: return_policy requests a reference-category policy "
45 "(rv::reference / rv::reference_internal) on a callable returning BY "
46 "VALUE - the target-language view would reference a destroyed "
47 "temporary; drop the policy, or return a pointer/reference";
48};
49
55 const char* what =
56 "welder: a bare [[=welder::mark::only]] is meaningless ('only, for "
57 "every language' restricts nothing); call it with the languages the "
58 "member may bind for: mark::only(welder::lang::py, ...)";
59};
60
66 const char* what =
67 "welder: no overridable virtual of this class matches the given name "
68 "and function type; check the spelling and the FULL function type - "
69 "parameter types and trailing cv/ref qualifiers included - against "
70 "the base's declaration";
71};
72
79 const char* what =
80 "welder: this resolution's protected_participates hook gained a "
81 "trailing `std::meta::info bound_into` parameter (the entity whose "
82 "binding receives the member); update its signature to "
83 "(mem, lang, bound_into)";
84};
85
93 const char* what =
94 "welder: a move constructor carries an include/only mark, but move "
95 "construction never binds - no target language has move semantics. "
96 "Remove the mark; copying is what crosses the boundary (the copy "
97 "constructor binds as Python __copy__/__deepcopy__)";
98};
99
106 const char* what =
107 "welder: this getter/setter explicit property name is longer than the "
108 "64-character inline capacity; choose a shorter target-language name";
109};
110
117 const char* what =
118 "welder: a [[=welder::getter]] must mark a CONST member function with "
119 "no parameters and a non-void return - a property read takes nothing "
120 "and must not mutate; move side effects to a method, or drop the mark";
121};
122
128 const char* what =
129 "welder: a [[=welder::setter]] must mark a member function taking "
130 "exactly ONE parameter (the new value); a multi-argument update is a "
131 "method, not a property write";
132};
133
139 const char* what =
140 "welder: this function carries BOTH a getter and a setter mark for one "
141 "language; a function supplies one property half - split the accessors, "
142 "or scope the marks to different languages";
143};
144
150 const char* what =
151 "welder: two getters (or two setters) resolve to the SAME property "
152 "name for one language; a property has one function per half - "
153 "mark::exclude one, scope the marks by language, or rename one with an "
154 "explicit getter(\"name\")/setter(\"name\")";
155};
156
162 const char* what =
163 "welder: this setter's property has NO participating getter for one "
164 "language (a write-only property is not idiomatic anywhere welder "
165 "binds); mark the matching getter, make the names pair (an explicit "
166 "getter(\"name\")/setter(\"name\") always pairs), or exclude the "
167 "setter for that language too";
168};
169
175 const char* what =
176 "welder: a getter/setter-marked function also carries weld_as, but an "
177 "accessor's target name is the PROPERTY name - spell it in the mark "
178 "instead: [[=welder::getter(\"name\")]]";
179};
180
187 const char* what =
188 "welder: getter/setter marks on a STATIC member function are not "
189 "supported yet; bind it as a static method (drop the mark), or expose "
190 "a namespace variable instead";
191};
192
200 const char* what =
201 "welder: getter/setter marks on a VIRTUAL member function are not "
202 "supported (a property under the method's name breaks Python override "
203 "dispatch, which looks overrides up by name); bind it as a method "
204 "(drop the mark), or wrap the virtual in non-virtual accessors";
205};
206
214 const char* what =
215 "welder: a property's name collides with a bound data member or "
216 "method of the same class (compared word-wise, so spelling-convention "
217 "variants count); rename the property with an explicit "
218 "getter(\"name\"), or exclude the colliding member";
219};
220
221
222} // namespace welder::inline v0::diag
Thrown by the accessor_name factory helper (<welder/annotations.hpp>) when a getter/setter explicit p...
Definition diag.hpp:104
const char * what
What went wrong and how to fix it.
Definition diag.hpp:106
Thrown by property_entries (<welder/bind_traits.hpp>) when one function carries both a getter and a s...
Definition diag.hpp:137
const char * what
What went wrong and how to fix it.
Definition diag.hpp:139
Thrown by property_entries (<welder/bind_traits.hpp>) when an accessor-marked function also carries a...
Definition diag.hpp:173
const char * what
What went wrong and how to fix it.
Definition diag.hpp:175
Thrown by member_bound (<welder/reflect.hpp>) when a member carries a bare [[=welder::mark::only]] — ...
Definition diag.hpp:53
const char * what
What went wrong and how to fix it.
Definition diag.hpp:55
Thrown by validate_return_policy (<welder/reflect.hpp>) — every rod runs it at its per-overload bind ...
Definition diag.hpp:41
const char * what
What went wrong and how to fix it.
Definition diag.hpp:43
Thrown by property_entries (<welder/bind_traits.hpp>) when two getters (or two setters) resolve to th...
Definition diag.hpp:148
const char * what
What went wrong and how to fix it.
Definition diag.hpp:150
Thrown by lang_bit (<welder/annotations.hpp>) when a lang value lies past the 32-bit language-mask wi...
Definition diag.hpp:30
const char * what
What went wrong and how to fix it.
Definition diag.hpp:32
Thrown by property_entries (<welder/bind_traits.hpp>) when a [[=welder::getter]] sits on a function t...
Definition diag.hpp:115
const char * what
What went wrong and how to fix it.
Definition diag.hpp:117
Thrown by property_entries (<welder/bind_traits.hpp>) when a [[=welder::setter]] sits on a function t...
Definition diag.hpp:126
const char * what
What went wrong and how to fix it.
Definition diag.hpp:128
Thrown by validate_move_ctor_marks (<welder/bind_traits.hpp>) — the carriage runs it for every welded...
Definition diag.hpp:91
const char * what
What went wrong and how to fix it.
Definition diag.hpp:93
Thrown by virtual_slot (<welder/rods/python/trampoline.hpp>, reached through WELDER_PY_OVERRIDE_AS) w...
Definition diag.hpp:64
const char * what
What went wrong and how to fix it.
Definition diag.hpp:66
Thrown by property_entries (<welder/bind_traits.hpp>) when a resolved property name collides with a b...
Definition diag.hpp:212
const char * what
What went wrong and how to fix it.
Definition diag.hpp:214
Thrown by property_entries (<welder/bind_traits.hpp>) when a participating setter's property has no p...
Definition diag.hpp:160
const char * what
What went wrong and how to fix it.
Definition diag.hpp:162
Thrown by member_access_admitted (<welder/bind_traits.hpp>) when a resolution still declares its opti...
Definition diag.hpp:77
const char * what
What went wrong and how to fix it.
Definition diag.hpp:79
Thrown by property_entries (<welder/bind_traits.hpp>) on an accessor-marked static member function: s...
Definition diag.hpp:185
const char * what
What went wrong and how to fix it.
Definition diag.hpp:187
Thrown by property_entries (<welder/bind_traits.hpp>) on an accessor-marked virtual member function: ...
Definition diag.hpp:198
const char * what
What went wrong and how to fix it.
Definition diag.hpp:200