Eduard Burtescu
d3a6d67fb8
mir: Don't use ConstVal when adjustments are involved, as they would be lost.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
9cc5ee359a
mir: Unsize ConstVal::ByteStr before comparing &[u8] against it.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
ccc5e0732a
mir: Ignore noop casts (e.g. when as
used for coercion).
2016-03-17 21:51:53 +02:00
Eduard Burtescu
1de6a9682f
mir: Don't use ConstVal kinds that contain local NodeId's.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
b38627dafb
mir: Use the right form of GEPi for indexing slices vs arrays.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
56417b3732
mir: Monomorphize LvalueTy's of projections.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
f9c06abc21
trans: Simplify "try" intrinsic.
2016-03-17 21:51:53 +02:00
Eduard Burtescu
bffb0decc8
tests: Use arguments in codegen/stores.rs to turn aggregates into immediates.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
6c0674e613
trans: Remove the foreign module.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
aec63821d0
trans: Handle all function setup for all ABIs via FnType.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
bd0a849f3b
trans: datum::lvalue_scratch_datum doesn't need a move-into-closure trick.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
03993882d6
trans: Handle calls for all ABIs through FnType.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
9e036c0ff0
trans: Provide the FnType for a direct call via Callee::direct_fn_type.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
80d939fd22
trans: Handle ignored arguments/returns uniformly.
2016-03-17 21:51:52 +02:00
Eduard Burtescu
7454b5c61d
trans: Set the calling convention in apply_attrs_callsite.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
77f3484148
trans: Apply all attributes through FnType.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
de5f8244f2
trans: Use llvm::Attributes directly in ArgTy.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
c7172a9935
rustc_llvm: An AttrBuilder that's not completely wasteful.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
763b6cba37
rustc_llvm: Update the Attribute bitflags and remove OtherAttribute.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
1d7c9bd137
trans: use sizing_type_of for interacting with potentially incomplete types.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
d492d09f31
trans: Apply ZExt and StructRet attributes uniformly.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
ac60318cf5
trans: Only mutate ArgTy's in C ABI handling, don't create them.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
03942056aa
trans: Handle type_of for Rust fn's via abi::FnType.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
f6bbbe1070
trans: Remove dropflag-unaware type_is_newtype_immediate shortcut.
2016-03-17 21:51:51 +02:00
Eduard Burtescu
cf0ea786ff
tests: Force instantiation of extern fns.
2016-03-17 21:51:50 +02:00
Eduard Burtescu
200d001784
trans: Pass fat pointers as two arguments even for FFI.
2016-03-17 21:51:50 +02:00
Eduard Burtescu
3342da4113
trans: Don't treat closure types like function types in declare.
2016-03-17 21:51:50 +02:00
Eduard Burtescu
da66431d06
trans: Combine cabi and back::abi into abi.
2016-03-17 21:51:50 +02:00
Eduard Burtescu
cdfad40735
trans: Condense the fn instantiation logic into callee.
2016-03-17 21:51:47 +02:00
Eduard Burtescu
b05556e06d
trans: Rename MonoId to Instance and start using it in more places.
2016-03-17 21:51:32 +02:00
Eduard Burtescu
d6e72c48dd
trans: Don't store extra copies of intrinsics ID/substs.
2016-03-17 18:19:50 +02:00
Eduard Burtescu
89766a81ef
trans: use Cell instead of RefCell where it suffices.
2016-03-17 18:19:50 +02:00
Eduard Burtescu
b122d1636a
trans: simplify the declare interface.
2016-03-17 18:19:50 +02:00
Eduard Burtescu
c6d214bdeb
trans: Revamp and empower cabi::FnType.
2016-03-17 18:19:50 +02:00
Eduard Burtescu
9221b9118b
trans: Pass the Rust type for the closure env in type_of_rust_fn.
2016-03-17 18:19:29 +02:00
Eduard Burtescu
7011e30352
trans: Remove the old ExprOrMethodCall.
2016-03-17 18:19:29 +02:00
Eduard Burtescu
55b5a365ef
trans: Remove unused return type argument from declare_cfn.
2016-03-17 18:19:29 +02:00
Eduard Burtescu
5af3c12cfc
trans: Move static item handling to consts.
2016-03-17 18:19:29 +02:00
Eduard Burtescu
c3f856e7e2
trans: Remove dead code for variants and structs from get_item_val.
2016-03-17 18:19:29 +02:00
Eduard Burtescu
e0970498c7
trans: Move trans_foreign_mod and trans_impl to trans_item.
2016-03-17 18:19:29 +02:00
Eduard Burtescu
16201d45f1
trans: Get functions and do calls only through Callee.
2016-03-17 17:52:30 +02:00
Eduard Burtescu
062a05dde8
metadata: Constrain FoundAst::FoundParent to an Item.
2016-03-17 17:51:58 +02:00
Eduard Burtescu
b918e37eb3
metedata: Remove the unnecessary indirection to astencode.
2016-03-17 17:51:58 +02:00
Eduard Burtescu
9723a3bc37
Move simd_ffi gating from trans to typeck.
2016-03-17 17:51:58 +02:00
Eduard Burtescu
b47fcb8375
trans: Use fmt::Debug for debugging instead of ad-hoc methods.
2016-03-17 17:51:58 +02:00
bors
abb1515c53
Auto merge of #32237 - alexcrichton:rustbuild-make-dist, r=brson
...
rustbuild: Implement `make dist`
This commit implements the `make dist` command in the new rustbuild build
system, porting over `dist.mk` and `prepare.mk` into Rust. There's a huge amount
of complexity between those two files, not all of which is likely justified, so
the Rust implementation is *much* smaller.
Currently the implementation still shells out to rust-installer as well as some
python scripts, but ideally we'd rewrite it all in the future to not shell out
and be in Rust proper.
2016-03-17 02:35:32 -07:00
bors
3b765f44a6
Auto merge of #32285 - oli-obk:fix/const_bitshift, r=eddyb
...
const eval: don't assume the rhs of a bitshift is of any particular type
[regression found](https://internals.rust-lang.org/t/regression-report-stable-2016-03-03-vs-nightly-2016-03-15/3250 ) in jpeg-decoder
2016-03-16 19:44:30 -07:00
Alex Crichton
6cc06b36c4
rustbuild: Implement make dist
...
This commit implements the `make dist` command in the new rustbuild build
system, porting over `dist.mk` and `prepare.mk` into Rust. There's a huge amount
of complexity between those two files, not all of which is likely justified, so
the Rust implementation is *much* smaller.
Currently the implementation still shells out to rust-installer as well as some
python scripts, but ideally we'd rewrite it all in the future to not shell out
and be in Rust proper.
2016-03-16 17:15:55 -07:00
bors
6e0f2f2f05
Auto merge of #32284 - jseyfried:name_conflict_diagnostics, r=eddyb
...
Resolve: improve diagnostics for duplicate definitions and imports
This PR improves and regularizes the diagnostics for duplicate definitions and imports.
After this PR, the second of two duplicate definitions/imports will have the following form:
> a(n) [value|type|module|trait|extern crate] named \`*name*\` has already been [defined|imported] in this [module|block|trait|enum]
with a note referencing this first of the two duplicate definitions/imports:
> previous [definition|import] of \`*name*\` here
The error indices remain unchanged.
r? @eddyb
2016-03-16 16:18:12 -07:00
bors
eeb062b8b1
Auto merge of #31746 - erickt:newline, r=sfackler
...
syntax: Always pretty print a newline after doc comments
Before this patch, code that had a doc comment as the first
line, as in:
```rust
/// Foo
struct Foo;
```
Was pretty printed into:
```rust
///Foostruct Foo;
```
This makes sure that that there is always a trailing newline
after a doc comment.
Closes #31722
2016-03-16 14:20:36 -07:00