| Thread overview |
|---|
April 08, 2014 DMD Source Hot Spot for Expression Type Deduction | ||||
|---|---|---|---|---|
| ||||
I'm looking for hot spots in the DMD source where deduction of types of expressions are performed. I want to use this to extract information about the type of an expression before/after point. Is this logic spread all over .*Exp::semantic .*Exp::semantic2 .*Exp::semantic3 or is there a hot spot where I can insert a callback to print such information? | ||||
April 08, 2014 Continued: DMD Source Hot Spot for Expression Type Deduction | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | So far I figured that what I typically want to do is
printf("Type: %s", e->type->toChars());
whenever I find a type-deduced expression e that fulfils
(e->loc->linnum == QUERY_LINE &&
e->loc->charnum <= QUERY_COLUMN &&
QUERY_COLUMN < (e->loc->charnum +
e->length_of_expression_in_code))
Can I somehow query the source code range (start end begin offset/row-column) of an expression?
This of course has to handle sub-expression types which is a complication I haven't covered here.
So maybe a better feature would be to query for type of expression before or after point.
| |||
April 08, 2014 Re: Continued: DMD Source Hot Spot for Expression Type Deduction | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Nordlöw | I just realized that maybe the best way is to recurse down the AST until I find node(s) whose token range cover my query point right? | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply