View source code
Display the source code in dmd/dcast.d from which this
page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a
Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
local clone.
Module dmd.dcast
Semantic analysis for cast-expressions.
Documentation
https://dlang.org/phobos/dmd_dcast.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/dcast.d
Functions
Name | Description |
---|---|
arrayTypeCompatibleWithoutCasting(t1, t2)
|
See if both types are arrays that can be compared for equality without any casting. Return true if so. This is to enable comparing things like an immutable array with a mutable one. |
castTo(e, sc, t, att)
|
Do an explicit cast.
Assume that the expression e does not have any indirections.
(Parameter 'att' is used to stop 'alias this' recursion)
|
cimplicitConvTo(e, t)
|
Same as implicitConvTo(); except follow C11 rules, which are quite a bit more permissive than D. C11 6.3 and 6.5.16.1 |
fix16997(sc, ue)
|
This provides a transition from the non-promoting behavior of unary + - ~ to the C-like integral promotion behavior. |
getIntRange(e)
|
|
implicitCastTo(e, sc, t)
|
Attempt to implicitly cast the expression into type t .
|
implicitConvTo(e, t)
|
Checks whether or not an expression can be implicitly converted
to type t .
|
inferType(e, t, flag)
|
Set type inference target t Target type flag 1: don't put an error when inference fails |
integralPromotions(e, sc)
|
Do integral promotions (convertchk).
Don't convert |
scaleFactor(be, sc)
|
Scale addition/subtraction to/from pointer. |
specialNoreturnCast(toBeCasted, to)
|
A helper function to "cast" from expressions of type noreturn to
any other type - noreturn is implicitly convertible to any other type.
However, the dmd backend does not like a naive cast from a noreturn expression
(particularly an assert(0) ) so this function generates:
|
toStaticArrayType(e)
|
|
typeCombine(be, sc)
|
Bring leaves to common type. |
typeMerge(sc, op, pe1, pe2)
|
Merge types of e1 and e2 into a common subset
|
Authors
License
Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.