Luqman Aden
47772bcb73
Add tests for duplicate methods on traits/impls.
2013-06-12 02:46:38 -04:00
Luqman Aden
c6f3103006
librustc: Don't allow duplicate methods on impls.
2013-06-12 02:46:38 -04:00
Luqman Aden
8fc14b6e62
librustc: Don't allow duplicate methods on a trait.
2013-06-12 02:46:38 -04:00
Huon Wilson
3ac00a9489
std: remove substr & str::count_*, methodise char_len, implement slice_chars.
...
The confusing mixture of byte index and character count meant that every
use of .substr was incorrect; replaced by slice_chars which only uses
character indices. The old behaviour of `.substr(start, n)` can be emulated
via `.slice_from(start).slice_chars(0, n)`.
2013-06-12 12:21:04 +10:00
Daniel Micay
004816f4c6
option: remove redundant old_iter impls
2013-06-11 14:06:12 -04:00
bors
df5b0c040c
auto merge of #7046 : luqmana/rust/issue-7044, r=sanxiyn
...
Fixes #7044 .
2013-06-10 20:52:32 -07:00
Luqman Aden
a95232a59e
librustc: Better errors for duplicate definitions.
2013-06-10 18:00:57 -04:00
Luqman Aden
5a3e1cdaec
librustc: Don't allow newtype or unit-like structs to shadow other names in the value namespace.
2013-06-10 17:29:48 -04:00
Huon Wilson
248b6e38b5
std: replace str::substr with the method.
2013-06-11 00:52:47 +10:00
Huon Wilson
a64e886e3c
std: remove str::contains in favour of the method
2013-06-10 23:02:55 +10:00
Huon Wilson
0cfc08d81e
std: convert character-based str::find_* to methods. Add .slice_{to,from} methods.
2013-06-10 23:02:54 +10:00
Huon Wilson
76fc9be5a1
std: convert each_split_str to an iterator
2013-06-10 23:02:54 +10:00
Huon Wilson
c32fb53cf9
std: remove str::{len, slice, is_empty} in favour of methods.
2013-06-10 23:02:54 +10:00
Alex Crichton
b6cccb3d81
Track the source of the type_target and value_target separately for ImportResolutions
2013-06-09 21:42:57 -07:00
Luqman Aden
618558a70f
librustc: Allow adding static fn's in multiple impl's.
2013-06-09 08:00:40 -04:00
Michael Sullivan
8bbf83b62a
Clean up a handful of build warnings.
2013-06-06 12:14:41 -07:00
Alexei Sholik
e75572c879
Deduplicate words in code comments
2013-06-06 10:48:27 +03:00
John Clements
04a691a511
token_to_ident takes argument by reference
2013-06-05 12:01:38 -07:00
John Clements
3203595471
interner just uses uints, not idents with syntax context
2013-06-05 12:01:38 -07:00
John Clements
ae02bf70e0
removed some interner fields
2013-06-05 12:01:38 -07:00
Philipp Brüschweiler
394ac1aae4
resolve: don't resolve paths that point to non-static methods
...
Fixes #6698
2013-06-03 13:31:43 +02:00
Erick Tryzelaar
23808efd11
syntax: move callee_id into the expr_ variants
2013-06-01 15:31:56 -07:00
Patrick Walton
5fb254695b
Remove all uses of pub impl
. rs=style
2013-06-01 09:18:27 -07:00
Huon Wilson
4f92d3a11c
rustc: adjust span for error message to not trim last letter
2013-06-01 00:39:02 +10:00
Niko Matsakis
7a1a40890d
Remove copy bindings from patterns.
2013-05-30 15:20:36 -04:00
Patrick Walton
206ab89629
librustc: Stop reexporting the standard modules from prelude.
2013-05-29 19:04:53 -07:00
Niko Matsakis
5851d3242c
Move checking for moves and initialization of local variables and patterns into
...
borrow checker and generalize what moves are allowed. Fixes a nasty
bug or two in the pattern move checking code. Unifies dataflow code
used for initialization and other things. First step towards
once fns. Everybody wins.
Fixes #4384 . Fixes #4715 . cc once fns (#2202 ), optimizing local moves (#5016 ).
2013-05-28 20:22:14 -04:00
Erick Tryzelaar
9635b30837
cleanup warnings from librustc
2013-05-23 17:57:07 -07:00
Patrick Walton
18df18c817
libstd: Fix merge fallout.
2013-05-22 21:57:11 -07:00
Patrick Walton
f3723cf7c4
libextra: Rename the actual metadata names of libcore to libstd and libstd to libextra
2013-05-22 21:57:07 -07:00
Patrick Walton
565942b145
librustc: Fix privacy checking for cross-crate variants
2013-05-22 21:57:03 -07:00
Patrick Walton
ca9bb2d9ac
librustc: Disallow use
from reaching into impls or traits.
...
This can perhaps be restored in the future. For now this is a precursor to
making typedefs work as expected.
2013-05-22 21:57:02 -07:00
bors
808aada1fb
auto merge of #6654 : sanxiyn/rust/accurate-span-2, r=bstrie
2013-05-21 05:37:17 -07:00
Seo Sanghyeon
258d20ea84
Correct span for unused_import
2013-05-21 19:09:22 +09:00
bors
329d8e2622
auto merge of #6648 : alexcrichton/rust/issue-6633, r=graydon
...
Resolves #6633 and removes an unnecessary import in libcore
2013-05-21 01:04:16 -07:00
bors
5a3e320514
auto merge of #6647 : alexcrichton/rust/unnecessary-alloc, r=graydon
...
This adds a lint mode for detecting unnecessary allocations on the heap. This isn't super fancy, currently it only has two rules
1. For a function's arguments, if you allocate a `[~|@]str` literal, when the type of the argument is a `&str`, emit a warning.
2. For the same case, emit warnings for boxed vectors when slices are required.
After adding the lint, I rampaged through the libraries and removed all the unnecessary allocations I could find.
2013-05-20 23:55:20 -07:00
Alex Crichton
82fa0018c8
Remove all unnecessary allocations (as flagged by lint)
2013-05-20 16:10:40 -05:00
Alex Crichton
15f97acdc8
Correctly track the source of imports with the same name
2013-05-20 13:02:08 -05:00
Björn Steinbrink
19dc72809d
Optimize the lookup of traits containing a given method
...
Currently, trait_info is a hashmap that allows a quick lookup of all
methods contained in a given trait, but we actually only use it to
lookup traits that contain a given method. Adjusting the map to support
the lookup we actually need gives a nice speed boost, reducing the time
required for the resolution step for librustc from ~2.6s to ~1.0s on my
box.
2013-05-20 19:50:30 +02:00
Corey Richardson
cc57ca012a
Use assert_eq! rather than assert! where possible
2013-05-19 08:16:02 -04:00
Alex Crichton
030c666cc1
Re-implement lint with less emphasis on item ids
...
This way it's much easier to add lints throughout compilation correctly, and
functions on impls can alter the way lints are emitted.
2013-05-17 00:49:16 -04:00
Niko Matsakis
035c01af93
Add BuiltinBounds to closure type: parse and handle subtyping,
...
but do not integrate with kindck etc (requires a snapshot first)
2013-05-16 14:21:02 -04:00
bors
c18e44ba17
auto merge of #6501 : june0cho/rust/incoming, r=graydon
...
Fix #3783 .
2013-05-15 17:10:46 -07:00
bors
4e82610099
auto merge of #6487 : recrack/rust/vec_len, r=thestinger
...
Rename vec::len(var) to var.len()
```
libcore, libfuzzer, librustc, librustdoc, libstd, libsyntax
test/auxiliary
test/bench
test/run-pass
```
2013-05-15 07:38:07 -07:00
bors
62c7027a32
auto merge of #6485 : cmr/rust/local_rename_import_error, r=catamorphism
2013-05-15 05:43:58 -07:00
Junyoung Cho
37fe2b60d5
Merge type_span and type_def, and ditto with value_span and value_def
2013-05-15 21:33:33 +09:00
Erick Tryzelaar
18f6a51d0a
rustc: rename ast::self_ty and related fields to explicit_self
2013-05-14 20:10:46 -07:00
Youngmin Yoo
a2a8596c3d
Rename vec::len(var) to var.len()
2013-05-15 11:05:28 +09:00
Corey Richardson
8a69dba84a
Fix ICE
2013-05-14 20:34:05 -04:00
Corey Richardson
3bfc1ca91d
Get span from import_directive
2013-05-14 19:28:28 -04:00