Comments (3)
That's just how it works, no bug here.
from nim.
The issue is not with the basic concept of how destructors work or type conversions, but rather with how the compiler handles the implicit creation of destructors when casting between related types. The fact that an implicit destructor interferes with an explicit destructor definition without a clear message suggests there might be room for improvement in how this is handled.
Even if this behavior is technically correct according to the current Nim specification, it can lead to confusion for developers, especially when dealing with complex inheritance structures. If this is intended behavior, clarifying it in the documentation could help prevent misunderstandings in the future. If itโs not intended, then addressing it could improve the developer experience.
Iโm not claiming that itโs definitively a bug, but I believe it warrants further discussion to see if this behavior could be made more intuitive or better communicated.
from nim.
There is no need to discuss it, in Nim v3 this restriction will be gone.
from nim.
Related Issues (20)
- compiling 32bit nim failed HOT 1
- Memory corruption with `lent` and ORC HOT 3
- `SIGSEGV` with `lent` and ORC
- Very basic code fails from generic alias replacing concrete typedesc argument HOT 2
- Recent codegen bug passing pointer expressions to inline iterators HOT 8
- nim devel branch ./build_all.sh fails to compile `md5.nim` HOT 6
- Suboptimal for-loop transformation in regards to closure iters
- SIGSEGV: Object with pure enum in proc HOT 3
- Parameter not matched in template following symchoice changes HOT 13
- Output executable is not updated after changing build mode HOT 2
- Cast seq to string, heap buffer overflow with stdlib assuming terminating '\0' HOT 5
- `IndexDefect` on `--verbosity:3` when compiling nimbus HOT 1
- GeneriC $ proc fails to resolve HOT 4
- Double template invocation causes bad codegen (duplicate gensym) HOT 4
- SIGSEGV from OpenSSL when used in async context
- js codegen bug for `case` statement with just `else` branch HOT 4
- Unexpected behavior with range types and custom operators HOT 8
- Yielding from var fails with pairs and destructuring HOT 4
- Invalid C code generated for `lent array` in `tuple`
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 nim.