[][src]Struct c2rust_transpile::c_ast::TypedAstContext

pub struct TypedAstContext {
    pub c_types: HashMap<CTypeId, CType>,
    pub c_exprs: HashMap<CExprId, CExpr>,
    pub c_stmts: HashMap<CStmtId, CStmt>,
    pub c_decls: IndexMap<CDeclId, CDecl>,
    pub c_decls_top: Vec<CDeclId>,
    pub c_main: Option<CDeclId>,
    pub c_files: HashMap<u64, String>,
    pub parents: HashMap<CDeclId, CDeclId>,
    pub comments: Vec<Located<String>>,
    pub prenamed_decls: IndexMap<CDeclId, CDeclId>,
}

AST context containing all of the nodes in the Clang AST

Fields

c_types: HashMap<CTypeId, CType>c_exprs: HashMap<CExprId, CExpr>c_stmts: HashMap<CStmtId, CStmt>c_decls: IndexMap<CDeclId, CDecl>c_decls_top: Vec<CDeclId>c_main: Option<CDeclId>c_files: HashMap<u64, String>parents: HashMap<CDeclId, CDeclId>comments: Vec<Located<String>>prenamed_decls: IndexMap<CDeclId, CDeclId>

Methods

impl TypedAstContext[src]

pub fn new() -> TypedAstContext[src]

pub fn is_null_expr(&self, expr_id: CExprId) -> bool[src]

pub fn is_forward_declared_type(&self, typ: CTypeId) -> bool[src]

Predicate for struct, union, and enum declarations without bodies. These forward declarations are suitable for use as the targets of pointers

pub fn is_function_pointer(&self, typ: CTypeId) -> bool[src]

Predicate for function pointers

pub fn resolve_type_id(&self, typ: CTypeId) -> CTypeId[src]

pub fn resolve_type(&self, typ: CTypeId) -> &CType[src]

pub fn is_expr_pure(&self, expr: CExprId) -> bool[src]

Pessimistically try to check if an expression has side effects. If it does, or we can't tell that it doesn't, return false.

pub fn expr_diverges(&self, expr_id: CExprId) -> bool[src]

that it doesn't, return false.

pub fn prune_unused_decls(&mut self)[src]

Trait Implementations

impl Clone for TypedAstContext[src]

default fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl Debug for TypedAstContext[src]

impl Index<CTypeId> for TypedAstContext[src]

type Output = CType

The returned type after indexing.

impl Index<CExprId> for TypedAstContext[src]

type Output = CExpr

The returned type after indexing.

impl Index<CDeclId> for TypedAstContext[src]

type Output = CDecl

The returned type after indexing.

impl Index<CStmtId> for TypedAstContext[src]

type Output = CStmt

The returned type after indexing.

Auto Trait Implementations

Blanket Implementations

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<E> SpecializationError for E[src]

impl<T> Erased for T[src]

impl<T> Send for T where
    T: ?Sized
[src]

impl<T> Sync for T where
    T: ?Sized
[src]

impl<T> Make for T[src]

impl<T> MaybeResult for T[src]

impl<'a, T> Captures for T where
    T: ?Sized
[src]

impl<T> Erased for T