function type_at_path (type, path) {
  if (!path) {
    return type;
  }

  var path_parts = path.split('.');
  var nested_type;
  for (var i = 0; i < path_parts.length; i++) {
    var field_name = path_parts[i];
    nested_type = field_type(type, field_name);
    if (nested_type instanceof IRVoidType || nested_type instanceof IRAnyType) {
      break;
    }
  }

  return nested_type;
}
/**
 * @param {IRType} type The type to apply the path to in order to obtain the nested IRType for.
 * @param {string} path The path to the nested property to obtain the IRType of.
 * @returns {IRType} The IRType of the nested property defined by the path on the type.
 */
@param {IRType} type The type to apply the path to in order to obtain the nested IRType for.
@param {string} path The path to the nested property to obtain the IRType of.
@returns {IRType} The IRType of the nested property defined by the path on the type.
@param { IRType } type The type to apply the path to in order to obtain the nested IRType for . @param { string } path The path to the nested property to obtain the IRType of . @returns { IRType } The IRType of the nested property defined by the path on the type .
function type_at_path (type, path) {
  if (!path) {
    return type;
  }
  var path_parts = path.split('.');
  var nested_type;
  for (var i = 0; i < path_parts.length; i++) {
    var field_name = path_parts[i];
    nested_type = field_type(type, field_name);
    if (nested_type instanceof IRVoidType || nested_type instanceof IRAnyType) {
      break;
    }
  }
  return nested_type;
}
function type_at_path ( type , path ) { if ( ! path ) { return type ; } var path_parts = path . split ( '.' ) ; var nested_type ; for ( var i = 0 ; i < path_parts . length ; i ++ ) { var field_name = path_parts [ i ] ; nested_type = field_type ( type , field_name ) ; if ( nested_type instanceof IRVoidType || nested_type instanceof IRAnyType ) { break ; } } return nested_type ; }
@param {IRType} type The type to apply the path to in order to obtain the nested IRType for.
@param { IRType } type The type to apply the path to in order to obtain the nested IRType for .