提交 88f03743 编写于 作者: T Tim Chevalier

Comments only: annotate FIXMEs

上级 9ee01370
...@@ -136,7 +136,7 @@ fn mk_closure_tys(tcx: ty::ctxt, ...@@ -136,7 +136,7 @@ fn mk_closure_tys(tcx: ty::ctxt,
}]; }];
} }
let bound_data_ty = ty::mk_tup(tcx, bound_tys); let bound_data_ty = ty::mk_tup(tcx, bound_tys);
// FIXME[mono] remove tuple of tydescs from closure types // FIXME[mono] remove tuple of tydescs from closure types (#2531)
let cdata_ty = ty::mk_tup(tcx, [ty::mk_tup(tcx, []), let cdata_ty = ty::mk_tup(tcx, [ty::mk_tup(tcx, []),
bound_data_ty]); bound_data_ty]);
#debug["cdata_ty=%s", ty_to_str(tcx, cdata_ty)]; #debug["cdata_ty=%s", ty_to_str(tcx, cdata_ty)];
......
...@@ -374,7 +374,7 @@ fn info() -> option<node_info> { ...@@ -374,7 +374,7 @@ fn info() -> option<node_info> {
const first_real_arg: uint = 2u; const first_real_arg: uint = 2u;
// FIXME move blocks to a class once those are finished, and simply use // FIXME move blocks to a class once those are finished, and simply use
// option<block> for this. // option<block> for this. (#2532)
enum block_parent { parent_none, parent_some(block), } enum block_parent { parent_none, parent_some(block), }
type result = {bcx: block, val: ValueRef}; type result = {bcx: block, val: ValueRef};
......
...@@ -533,6 +533,8 @@ fn create_ty(_cx: @crate_ctxt, _t: ty::t, _ty: @ast::ty) ...@@ -533,6 +533,8 @@ fn create_ty(_cx: @crate_ctxt, _t: ty::t, _ty: @ast::ty)
* needed. It is only done to track spans, but you will not get the * needed. It is only done to track spans, but you will not get the
* right spans anyway -- types tend to refer to stuff defined * right spans anyway -- types tend to refer to stuff defined
* elsewhere, not be self-contained. * elsewhere, not be self-contained.
*
* See Issue #2012
*/ */
fail; fail;
...@@ -649,7 +651,7 @@ fn create_local_var(bcx: block, local: @ast::local) ...@@ -649,7 +651,7 @@ fn create_local_var(bcx: block, local: @ast::local)
let name = alt local.node.pat.node { let name = alt local.node.pat.node {
ast::pat_ident(pth, _) { ast_util::path_to_ident(pth) } ast::pat_ident(pth, _) { ast_util::path_to_ident(pth) }
// FIXME this should be handled // FIXME this should be handled (#2533)
_ { fail "no single variable name for local"; } _ { fail "no single variable name for local"; }
}; };
let loc = codemap::lookup_char_pos(cx.sess.codemap, let loc = codemap::lookup_char_pos(cx.sess.codemap,
......
...@@ -148,7 +148,7 @@ fn trans_iface_callee(bcx: block, val: ValueRef, ...@@ -148,7 +148,7 @@ fn trans_iface_callee(bcx: block, val: ValueRef,
let vtable = Load(bcx, PointerCast(bcx, GEPi(bcx, val, [0u, 0u]), let vtable = Load(bcx, PointerCast(bcx, GEPi(bcx, val, [0u, 0u]),
T_ptr(T_ptr(T_vtable())))); T_ptr(T_ptr(T_vtable()))));
let box = Load(bcx, GEPi(bcx, val, [0u, 1u])); let box = Load(bcx, GEPi(bcx, val, [0u, 1u]));
// FIXME[impl] I doubt this is alignment-safe // FIXME[impl] I doubt this is alignment-safe (#2534)
let self = GEPi(bcx, box, [0u, abi::box_field_body]); let self = GEPi(bcx, box, [0u, abi::box_field_body]);
let env = self_env(self, ty::mk_opaque_box(bcx.tcx()), some(box)); let env = self_env(self, ty::mk_opaque_box(bcx.tcx()), some(box));
let llfty = type_of::type_of_fn_from_ty(ccx, callee_ty); let llfty = type_of::type_of_fn_from_ty(ccx, callee_ty);
......
...@@ -701,7 +701,7 @@ fn base_fn(ccx: @crate_ctxt, lname: str, tys: @c_stack_tys, ...@@ -701,7 +701,7 @@ fn base_fn(ccx: @crate_ctxt, lname: str, tys: @c_stack_tys,
} }
// FIXME this is very shaky and probably gets ABIs wrong all over // FIXME this is very shaky and probably gets ABIs wrong all over
// the place // the place (#2535)
fn build_direct_fn(ccx: @crate_ctxt, decl: ValueRef, fn build_direct_fn(ccx: @crate_ctxt, decl: ValueRef,
item: @ast::native_item, tys: @c_stack_tys, item: @ast::native_item, tys: @c_stack_tys,
cc: lib::llvm::CallConv) { cc: lib::llvm::CallConv) {
......
...@@ -495,6 +495,7 @@ fn gen_enum_shapes(ccx: @crate_ctxt) -> ValueRef { ...@@ -495,6 +495,7 @@ fn gen_enum_shapes(ccx: @crate_ctxt) -> ValueRef {
ret mk_global(ccx, "tag_shapes", C_bytes(header), true); ret mk_global(ccx, "tag_shapes", C_bytes(header), true);
/* tjc: Not annotating FIXMEs in this module because of #1498 */
fn largest_variants(ccx: @crate_ctxt, fn largest_variants(ccx: @crate_ctxt,
variants: @[ty::variant_info]) -> [uint] { variants: @[ty::variant_info]) -> [uint] {
// Compute the minimum and maximum size and alignment for each // Compute the minimum and maximum size and alignment for each
......
...@@ -60,7 +60,7 @@ fn alloc_uniq_raw(bcx: block, unit_ty: ty::t, ...@@ -60,7 +60,7 @@ fn alloc_uniq_raw(bcx: block, unit_ty: ty::t,
let llunitty = type_of::type_of(ccx, unit_ty); let llunitty = type_of::type_of(ccx, unit_ty);
let llvecty = T_vec(ccx, llunitty); let llvecty = T_vec(ccx, llunitty);
let vecsize = Add(bcx, alloc, llsize_of(ccx, llvecty)); let vecsize = Add(bcx, alloc, llsize_of(ccx, llvecty));
let vecbodyty = unit_ty; // FIXME: This is not the correct type let vecbodyty = unit_ty; // FIXME: This is not the correct type (#2536)
let {box, body} = base::malloc_unique_dyn(bcx, vecbodyty, vecsize); let {box, body} = base::malloc_unique_dyn(bcx, vecbodyty, vecsize);
let boxptr = PointerCast(bcx, box, let boxptr = PointerCast(bcx, box,
T_unique_ptr(T_unique(bcx.ccx(), llvecty))); T_unique_ptr(T_unique(bcx.ccx(), llvecty)));
...@@ -93,7 +93,7 @@ fn duplicate_uniq(bcx: block, vptr: ValueRef, vec_ty: ty::t) -> result { ...@@ -93,7 +93,7 @@ fn duplicate_uniq(bcx: block, vptr: ValueRef, vec_ty: ty::t) -> result {
let unit_ty = ty::sequence_element_type(bcx.tcx(), vec_ty); let unit_ty = ty::sequence_element_type(bcx.tcx(), vec_ty);
let llunitty = type_of::type_of(ccx, unit_ty); let llunitty = type_of::type_of(ccx, unit_ty);
let llvecty = T_vec(ccx, llunitty); let llvecty = T_vec(ccx, llunitty);
let vecbodyty = unit_ty; // FIXME: This is not the correct type let vecbodyty = unit_ty; // FIXME: This is not the correct type (#2536)
let {box: newptr, body: new_body_ptr} = let {box: newptr, body: new_body_ptr} =
base::malloc_unique_dyn(bcx, vecbodyty, size); base::malloc_unique_dyn(bcx, vecbodyty, size);
let newptr = PointerCast(bcx, newptr, let newptr = PointerCast(bcx, newptr,
...@@ -428,7 +428,7 @@ fn iter_vec_raw(bcx: block, data_ptr: ValueRef, vec_ty: ty::t, ...@@ -428,7 +428,7 @@ fn iter_vec_raw(bcx: block, data_ptr: ValueRef, vec_ty: ty::t,
// Calculate the last pointer address we want to handle. // Calculate the last pointer address we want to handle.
// FIXME: Optimize this when the size of the unit type is statically // FIXME: Optimize this when the size of the unit type is statically
// known to not use pointer casts, which tend to confuse LLVM. // known to not use pointer casts, which tend to confuse LLVM. (#2536)
let data_end_ptr = pointer_add(bcx, data_ptr, fill); let data_end_ptr = pointer_add(bcx, data_ptr, fill);
// Now perform the iteration. // Now perform the iteration.
......
...@@ -183,7 +183,7 @@ fn mark_for_expr(cx: ctx, e: @expr) { ...@@ -183,7 +183,7 @@ fn mark_for_expr(cx: ctx, e: @expr) {
} }
expr_index(base, _) | expr_field(base, _, _) { expr_index(base, _) | expr_field(base, _, _) {
// FIXME could be more careful and not count fields // FIXME could be more careful and not count fields
// after the chosen field // after the chosen field (#2537)
let base_ty = ty::node_id_to_type(cx.ccx.tcx, base.id); let base_ty = ty::node_id_to_type(cx.ccx.tcx, base.id);
type_needs(cx, use_repr, ty::type_autoderef(cx.ccx.tcx, base_ty)); type_needs(cx, use_repr, ty::type_autoderef(cx.ccx.tcx, base_ty));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册