Comments (2)
I came back to the preload file again and noticed there are other types like map and dynamic_array which currently don't appear to be part of the language yet. Perhaps I just jumped the gun and the struct type info hadn't been properly implemented up to this point v0.0.6. If that is the case I apologize for opening an issue Bill.
from odin.
First, when casting a union to its subtype/tag, do:
newtype_info, ok := cast(^Type_Info.Struct) type_info_of_val(newtype);
This will return a boolean to check if it's valid. cast
doesn't do any other checks (maybe I should make a raw_cast
).
Second, the kind of that type isn't a Type_Info.Struct
but a Type_Info.Named
. This means you want to get the base type of that Named
type. This can be done manually or through the procedure type_info_base
.
Third, check fmt.odin
for a good exampe of what I mean.
Note: You don't need to do a manual dereference to get a struct's field as the language does an automatic one indirect dereference in those cases (as well as in the using
cases). This is help with refactoring, and logic.
x: ^Foo;
// These two are identical in outputted code
x.^bar = 123;
x.bar = 123;
from odin.
Related Issues (20)
- Example in docs not working HOT 1
- Change reserve's capacity parameter to #any_int to align with make
- Failure to index contant array HOT 2
- Cannot compile to target windows_i386 HOT 4
- Are DX12 FENCE_FLAGS wrong? HOT 1
- Cannot use generic struct as key in maps HOT 2
- Free Segfaults depending on where a struct was initialized HOT 3
- enable_target_features should error if the target machine microarchitecture does not support them HOT 3
- Enum Array of Arrays Init/Compiler Bugs
- Virtual Alloc Failure
- [fmt] left padding of numbers should default to space instead of 0
- Folder name build bug or error message fix HOT 1
- Compiler Crash with parapoly + debug
- Parapoly should figure out types from first non-constant instead of first parameter HOT 1
- llvm_backend_proc.cpp(72): Panic
- src/checker.cpp(795): Assertion Failure: `e != nullptr` default_hasher HOT 2
- Needless libc import in vendor stb rect pack
- Possible issue with anonymous types and parapoly
- unused variables in #partial switch don't error with -vet in specific circumstances
- Dynamic array silently switches to `context.allocator` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from odin.