void MatchAsExpr::trace() const { Expr::trace(); safeMark(scope_); safeMark(test_); safeMark(init_); safeMark(body_); }
void IfExpr::trace() const { Expr::trace(); safeMark(scope_); safeMark(test_); safeMark(thenVal_); safeMark(elseVal_); }
void ForExpr::trace() const { Expr::trace(); safeMark(init_); safeMark(test_); safeMark(incr_); safeMark(body_); }
void ForEachExpr::trace() const { Expr::trace(); safeMark(iterator_); safeMark(next_); safeMark(test_); markList(assigns_.begin(), assigns_.end()); safeMark(body_); }
void Module::trace() const { Defn::trace(); IterableScope::trace(); safeMark(moduleSource_); markList(decls_.begin(), decls_.end()); markList(primaryDefs_.begin(), primaryDefs_.end()); markList(imports_.begin(), imports_.end()); }
void CallCandidate::trace() const { safeMark(callExpr_); safeMark(base_); safeMark(method_); safeMark(method_); safeMark(fnType_); safeMark(resultType_.unqualified()); safeMark(typeParams_); safeMark(spCandidate_); markArray(llvm::ArrayRef<QualifiedType>(paramTypes_)); }
void WhileExpr::trace() const { Expr::trace(); safeMark(scope_); safeMark(test_); safeMark(body_); }
void CatchExpr::trace() const { Expr::trace(); safeMark(scope_); safeMark(var_); safeMark(body_); }
void TryExpr::trace() const { ArglistExpr::trace(); safeMark(body_); safeMark(finallyBlock_); }
void MatchExpr::trace() const { ArglistExpr::trace(); safeMark(scope_); safeMark(value_); safeMark(elseCase_); }
void CaseExpr::trace() const { ArglistExpr::trace(); safeMark(body_); }
void SwitchExpr::trace() const { ArglistExpr::trace(); safeMark(value_); safeMark(elseCase_); safeMark(equalityTestFn_); }
void AmbiguousTypeParamType::trace() const { Type::trace(); base_->mark(); safeMark(match_); }
void Directory::trace() const { safeMark(_parent); safeMark(_name); _files.trace(); _subdirs.trace(); }