1 // Do not edit, this file is generated from accessors.scm
toGenericHashTable()2 GenericHashTable* toGenericHashTable() const
3 {
4     MOSH_ASSERT(isGenericHashTable());
5     return reinterpret_cast<GenericHashTable*>(reinterpret_cast<HeapObject*>(val)->obj);
6 }
7 
isGenericHashTable()8 bool isGenericHashTable() const
9 {
10     return isHeapObject()
11     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::GenericHashTable;
12 }
13 
toVector()14 Vector* toVector() const
15 {
16     MOSH_ASSERT(isVector());
17     return reinterpret_cast<Vector*>(reinterpret_cast<HeapObject*>(val)->obj);
18 }
19 
isVector()20 bool isVector() const
21 {
22     return isHeapObject()
23     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Vector;
24 }
25 
toClosure()26 Closure* toClosure() const
27 {
28     MOSH_ASSERT(isClosure());
29     return reinterpret_cast<Closure*>(reinterpret_cast<HeapObject*>(val)->obj);
30 }
31 
isClosure()32 bool isClosure() const
33 {
34     return isHeapObject()
35     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Closure;
36 }
37 
toCProcedure()38 CProcedure* toCProcedure() const
39 {
40     MOSH_ASSERT(isCProcedure());
41     return reinterpret_cast<CProcedure*>(reinterpret_cast<HeapObject*>(val)->obj);
42 }
43 
isCProcedure()44 bool isCProcedure() const
45 {
46     return isHeapObject()
47     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::CProcedure;
48 }
49 
toString()50 String* toString() const
51 {
52     MOSH_ASSERT(isString());
53     return reinterpret_cast<String*>(reinterpret_cast<HeapObject*>(val)->obj);
54 }
55 
isString()56 bool isString() const
57 {
58     return isHeapObject()
59     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::String;
60 }
61 
toSymbol()62 Symbol* toSymbol() const
63 {
64     MOSH_ASSERT(isSymbol());
65     return reinterpret_cast<Symbol*>(reinterpret_cast<HeapObject*>(val)->obj);
66 }
67 
isSymbol()68 bool isSymbol() const
69 {
70     return isHeapObject()
71     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Symbol;
72 }
73 
toStack()74 Stack* toStack() const
75 {
76     MOSH_ASSERT(isStack());
77     return reinterpret_cast<Stack*>(reinterpret_cast<HeapObject*>(val)->obj);
78 }
79 
isStack()80 bool isStack() const
81 {
82     return isHeapObject()
83     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Stack;
84 }
85 
toBox()86 Box* toBox() const
87 {
88     MOSH_ASSERT(isBox());
89     return reinterpret_cast<Box*>(reinterpret_cast<HeapObject*>(val)->obj);
90 }
91 
isBox()92 bool isBox() const
93 {
94     return isHeapObject()
95     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Box;
96 }
97 
toEqHashTable()98 EqHashTable* toEqHashTable() const
99 {
100     MOSH_ASSERT(isEqHashTable());
101     return reinterpret_cast<EqHashTable*>(reinterpret_cast<HeapObject*>(val)->obj);
102 }
103 
isEqHashTable()104 bool isEqHashTable() const
105 {
106     return isHeapObject()
107     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::EqHashTable;
108 }
109 
toEqvHashTable()110 EqvHashTable* toEqvHashTable() const
111 {
112     MOSH_ASSERT(isEqvHashTable());
113     return reinterpret_cast<EqvHashTable*>(reinterpret_cast<HeapObject*>(val)->obj);
114 }
115 
isEqvHashTable()116 bool isEqvHashTable() const
117 {
118     return isHeapObject()
119     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::EqvHashTable;
120 }
121 
toByteVector()122 ByteVector* toByteVector() const
123 {
124     MOSH_ASSERT(isByteVector());
125     return reinterpret_cast<ByteVector*>(reinterpret_cast<HeapObject*>(val)->obj);
126 }
127 
isByteVector()128 bool isByteVector() const
129 {
130     return isHeapObject()
131     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::ByteVector;
132 }
133 
toTextualInputPort()134 TextualInputPort* toTextualInputPort() const
135 {
136     MOSH_ASSERT(isTextualInputPort());
137     return reinterpret_cast<TextualInputPort*>(reinterpret_cast<HeapObject*>(val)->obj);
138 }
139 
isTextualInputPort()140 bool isTextualInputPort() const
141 {
142     return isHeapObject()
143     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::TextualInputPort;
144 }
145 
toTextualOutputPort()146 TextualOutputPort* toTextualOutputPort() const
147 {
148     MOSH_ASSERT(isTextualOutputPort());
149     return reinterpret_cast<TextualOutputPort*>(reinterpret_cast<HeapObject*>(val)->obj);
150 }
151 
isTextualOutputPort()152 bool isTextualOutputPort() const
153 {
154     return isHeapObject()
155     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::TextualOutputPort;
156 }
157 
toRegexp()158 Regexp* toRegexp() const
159 {
160     MOSH_ASSERT(isRegexp());
161     return reinterpret_cast<Regexp*>(reinterpret_cast<HeapObject*>(val)->obj);
162 }
163 
isRegexp()164 bool isRegexp() const
165 {
166     return isHeapObject()
167     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Regexp;
168 }
169 
toRegMatch()170 RegMatch* toRegMatch() const
171 {
172     MOSH_ASSERT(isRegMatch());
173     return reinterpret_cast<RegMatch*>(reinterpret_cast<HeapObject*>(val)->obj);
174 }
175 
isRegMatch()176 bool isRegMatch() const
177 {
178     return isHeapObject()
179     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::RegMatch;
180 }
181 
toBinaryInputPort()182 BinaryInputPort* toBinaryInputPort() const
183 {
184     MOSH_ASSERT(isBinaryInputPort());
185     return reinterpret_cast<BinaryInputPort*>(reinterpret_cast<HeapObject*>(val)->obj);
186 }
187 
isBinaryInputPort()188 bool isBinaryInputPort() const
189 {
190     return isHeapObject()
191     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::BinaryInputPort;
192 }
193 
toBinaryOutputPort()194 BinaryOutputPort* toBinaryOutputPort() const
195 {
196     MOSH_ASSERT(isBinaryOutputPort());
197     return reinterpret_cast<BinaryOutputPort*>(reinterpret_cast<HeapObject*>(val)->obj);
198 }
199 
isBinaryOutputPort()200 bool isBinaryOutputPort() const
201 {
202     return isHeapObject()
203     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::BinaryOutputPort;
204 }
205 
toCodec()206 Codec* toCodec() const
207 {
208     MOSH_ASSERT(isCodec());
209     return reinterpret_cast<Codec*>(reinterpret_cast<HeapObject*>(val)->obj);
210 }
211 
isCodec()212 bool isCodec() const
213 {
214     return isHeapObject()
215     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Codec;
216 }
217 
toTranscoder()218 Transcoder* toTranscoder() const
219 {
220     MOSH_ASSERT(isTranscoder());
221     return reinterpret_cast<Transcoder*>(reinterpret_cast<HeapObject*>(val)->obj);
222 }
223 
isTranscoder()224 bool isTranscoder() const
225 {
226     return isHeapObject()
227     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Transcoder;
228 }
229 
toCodeBuilder()230 CodeBuilder* toCodeBuilder() const
231 {
232     MOSH_ASSERT(isCodeBuilder());
233     return reinterpret_cast<CodeBuilder*>(reinterpret_cast<HeapObject*>(val)->obj);
234 }
235 
isCodeBuilder()236 bool isCodeBuilder() const
237 {
238     return isHeapObject()
239     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::CodeBuilder;
240 }
241 
toCallable()242 Callable* toCallable() const
243 {
244     MOSH_ASSERT(isCallable());
245     return reinterpret_cast<Callable*>(reinterpret_cast<HeapObject*>(val)->obj);
246 }
247 
isCallable()248 bool isCallable() const
249 {
250     return isHeapObject()
251     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Callable;
252 }
253 
toRatnum()254 Ratnum* toRatnum() const
255 {
256     MOSH_ASSERT(isRatnum());
257     return reinterpret_cast<Ratnum*>(reinterpret_cast<HeapObject*>(val)->obj);
258 }
259 
isRatnum()260 bool isRatnum() const
261 {
262     return isHeapObject()
263     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Ratnum;
264 }
265 
toFlonum()266 Flonum* toFlonum() const
267 {
268     MOSH_ASSERT(isFlonum());
269     return reinterpret_cast<Flonum*>(reinterpret_cast<HeapObject*>(val)->obj);
270 }
271 
isFlonum()272 bool isFlonum() const
273 {
274     return isHeapObject()
275     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Flonum;
276 }
277 
toBignum()278 Bignum* toBignum() const
279 {
280     MOSH_ASSERT(isBignum());
281     return reinterpret_cast<Bignum*>(reinterpret_cast<HeapObject*>(val)->obj);
282 }
283 
isBignum()284 bool isBignum() const
285 {
286     return isHeapObject()
287     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Bignum;
288 }
289 
toCompnum()290 Compnum* toCompnum() const
291 {
292     MOSH_ASSERT(isCompnum());
293     return reinterpret_cast<Compnum*>(reinterpret_cast<HeapObject*>(val)->obj);
294 }
295 
isCompnum()296 bool isCompnum() const
297 {
298     return isHeapObject()
299     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Compnum;
300 }
301 
toGloc()302 Gloc* toGloc() const
303 {
304     MOSH_ASSERT(isGloc());
305     return reinterpret_cast<Gloc*>(reinterpret_cast<HeapObject*>(val)->obj);
306 }
307 
isGloc()308 bool isGloc() const
309 {
310     return isHeapObject()
311     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Gloc;
312 }
313 
toBinaryInputOutputPort()314 BinaryInputOutputPort* toBinaryInputOutputPort() const
315 {
316     MOSH_ASSERT(isBinaryInputOutputPort());
317     return reinterpret_cast<BinaryInputOutputPort*>(reinterpret_cast<HeapObject*>(val)->obj);
318 }
319 
isBinaryInputOutputPort()320 bool isBinaryInputOutputPort() const
321 {
322     return isHeapObject()
323     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::BinaryInputOutputPort;
324 }
325 
toTextualInputOutputPort()326 TextualInputOutputPort* toTextualInputOutputPort() const
327 {
328     MOSH_ASSERT(isTextualInputOutputPort());
329     return reinterpret_cast<TextualInputOutputPort*>(reinterpret_cast<HeapObject*>(val)->obj);
330 }
331 
isTextualInputOutputPort()332 bool isTextualInputOutputPort() const
333 {
334     return isHeapObject()
335     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::TextualInputOutputPort;
336 }
337 
toSocket()338 Socket* toSocket() const
339 {
340     MOSH_ASSERT(isSocket());
341     return reinterpret_cast<Socket*>(reinterpret_cast<HeapObject*>(val)->obj);
342 }
343 
isSocket()344 bool isSocket() const
345 {
346     return isHeapObject()
347     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Socket;
348 }
349 
toVM()350 VM* toVM() const
351 {
352     MOSH_ASSERT(isVM());
353     return reinterpret_cast<VM*>(reinterpret_cast<HeapObject*>(val)->obj);
354 }
355 
isVM()356 bool isVM() const
357 {
358     return isHeapObject()
359     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::VM;
360 }
361 
toConditionVariable()362 ConditionVariable* toConditionVariable() const
363 {
364     MOSH_ASSERT(isConditionVariable());
365     return reinterpret_cast<ConditionVariable*>(reinterpret_cast<HeapObject*>(val)->obj);
366 }
367 
isConditionVariable()368 bool isConditionVariable() const
369 {
370     return isHeapObject()
371     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::ConditionVariable;
372 }
373 
toMutex()374 Mutex* toMutex() const
375 {
376     MOSH_ASSERT(isMutex());
377     return reinterpret_cast<Mutex*>(reinterpret_cast<HeapObject*>(val)->obj);
378 }
379 
isMutex()380 bool isMutex() const
381 {
382     return isHeapObject()
383     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Mutex;
384 }
385 
toPointer()386 Pointer* toPointer() const
387 {
388     MOSH_ASSERT(isPointer());
389     return reinterpret_cast<Pointer*>(reinterpret_cast<HeapObject*>(val)->obj);
390 }
391 
isPointer()392 bool isPointer() const
393 {
394     return isHeapObject()
395     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Pointer;
396 }
397 
toSimpleStruct()398 SimpleStruct* toSimpleStruct() const
399 {
400     MOSH_ASSERT(isSimpleStruct());
401     return reinterpret_cast<SimpleStruct*>(reinterpret_cast<HeapObject*>(val)->obj);
402 }
403 
isSimpleStruct()404 bool isSimpleStruct() const
405 {
406     return isHeapObject()
407     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::SimpleStruct;
408 }
409 
toContinuation()410 Continuation* toContinuation() const
411 {
412     MOSH_ASSERT(isContinuation());
413     return reinterpret_cast<Continuation*>(reinterpret_cast<HeapObject*>(val)->obj);
414 }
415 
isContinuation()416 bool isContinuation() const
417 {
418     return isHeapObject()
419     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::Continuation;
420 }
421 
toSharedReference()422 SharedReference* toSharedReference() const
423 {
424     MOSH_ASSERT(isSharedReference());
425     return reinterpret_cast<SharedReference*>(reinterpret_cast<HeapObject*>(val)->obj);
426 }
427 
isSharedReference()428 bool isSharedReference() const
429 {
430     return isHeapObject()
431     && reinterpret_cast<HeapObject*>(val)->type == HeapObject::SharedReference;
432 }
433 
434