View source code
Display the source code in dmd/typesem.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.typesem
Semantic analysis for D types.
Documentation
https://dlang.org/phobos/dmd_typesem.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/typesem.d
Functions
Name | Description |
---|---|
addMod(type, mod)
|
Add MODxxxx bits to existing type. We're adding, not replacing, so adding const to a shared type => "shared const" |
addStorageClass(type, stc)
|
Add storage class modifiers to type. |
callMatch(tf, tthis, argumentList, flag, errorHelper, sc)
|
'args' are being matched to function type 'tf' Determine match level. |
castMod(type, mod)
|
Apply MODxxxx bits to existing type. |
checkComplexTransition(type, loc, sc)
|
|
constOf(type)
|
Convert to 'const'. |
covariant(src, t, pstc, cppCovariant)
|
Covariant means that 'src' can substitute for 't', i.e. a pure function is a match for an impure type. |
defaultInit(mt, loc, isCfile)
|
Get the default initialization expression for a type. |
dotExp(mt, sc, e, ident, flag)
|
Access the members of the object e. This type is same as e.type. |
getComplexLibraryType(loc, sc, ty)
|
Extract complex type from core.stdc.config |
getProperty(t, scope_, loc, ident, flag, src)
|
Calculate built-in properties which just the type is necessary. |
hasPointers(t)
|
Return !=0 if type has pointers that need to be scanned by the GC during a collection cycle. |
immutableOf(type)
|
Convert to 'immutable'. |
isCopyable(t)
|
Determine if type t is copyable. |
isRecursiveAliasThis(att, t)
|
Check and set 'att' if 't' is a recursive 'alias this' type |
merge(type)
|
If an identical type to type is in type , return
the latter one. Otherwise, add it to type .
Some types don't get merged and are returned as-is.
|
merge2(type)
|
This version does a merge even if the deco is already computed. Necessary for types that have a deco, but are not merged. |
mutabilityOfType(isref, t)
|
Determine mutability of indirections in (ref) t. |
mutableOf(type)
|
Make type mutable. |
parameterStorageClass(tf, tthis, p, outerVars, indirect)
|
Take the specified storage class for p, and use the function signature to infer whether STC.scope_ and STC.return_ should be OR'd in. (This will not affect the name mangling.) |
purityLevel(typeFunction)
|
Set 'purity' field of 'typeFunction'. Do this lazily, as the parameter types might be forward referenced. |
resolve(mt, loc, sc, pe, pt, ps, intypeid)
|
Resolve type 'mt' to either type, symbol, or expression. If errors happened, resolved to Type.terror. |
toHeadMutable(t)
|
Return type with the top level of it being mutable. |
typeSemantic(type, loc, sc)
|
Perform semantic analysis on a type. |
typeToExpression(t)
|
We've mistakenly parsed t as a type.
Redo t as an Expression only if there are no type modifiers.
|
unSharedOf(type)
|
Make type unshared. 0 => 0 const => const immutable => immutable shared => 0 shared const => const wild => wild wild const => wild const shared wild => wild shared wild const => wild const |
wildOf(type)
|
Convert to 'wild'. |
Authors
License
Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.