Comments (2)
Hi Norbert,
Thanks for sending on this interesting example. On my system this causes an assert. I have fixed this in
commit fc0cc03 to generate a more informative error:
/u/bowman/camp/test76.asy: 5.35: cannot convert 'real' to 'int' in assignment
/u/bowman/camp/test76.asy: 6.32: cannot cast 'Aint' to 'Areal'
The problem is that the quote code does not get re-evaluated with the new typedefs, but this is easy to fix with two nested evals:
void define_wrapper(string type)
{
string wrapper="A"+type;
eval("var casts=quote {"+
"public struct "+wrapper+"{ "+type+" value; };"
"typedef "+wrapper+" TWrap;"+
"typedef "+type+" TInner;"+
"public TWrap operator cast(TInner value) {
var obj=new TWrap;
obj.value=value;
return obj;
}
public TInner operator cast(TWrap obj) {
return obj.value;
}
};
eval(casts,true);",true);
}
define_wrapper("int");
define_wrapper("real");
Aint x;
Areal y;
x.value=1;
y.value=pi;
write(x.value);
write(y.value);
from asymptote.
Thanks a lot!
from asymptote.
Related Issues (20)
- Postscript error creating svg with libgs.so.10.02 HOT 4
- svg breakage with gs-10.03.0 HOT 1
- asy-latex one line processing
- Linking error on macOS with clang: `Undefined symbols for architecture x86_64: "_add_history"` etc. HOT 5
- Canβt compile LSP β <boost/filesystem/directory.hpp> missing from LspCpp/src/lsp/utils.cpp HOT 1
- Algolia DocSearch integration?
- Defining struct in a loop gives confusing error message HOT 1
- Feature request: Convert tab to 4 [/8] spaces in error message reporting
- Feature request: `var oldAsin=asin;` copies the function HOT 2
- Bug: unitsize() does not work to set unitsize of other pictures HOT 2
- Feature suggestion: automatic generation of constructor HOT 1
- Documentation of cputime is in Structure section? HOT 1
- Feature suggestion: shorthand to create a picture HOT 9
- Feature suggestion: Remove `add(picture dest, picture src, pair position)` variant as it's dangerous HOT 4
- Stack traceback on error?
- Suggestion: integrate with Typst? HOT 3
- Suggestion: `envelope` type don't need `above` passed in HOT 1
- Why does the bounding box of a frame containing just a label not just the label's bounding box? HOT 1
- Suggestion: transformations for shading tools? HOT 1
- Feature suggestion: baseline specification for inclusion in LaTeX HOT 1
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 asymptote.