Commit graph

7142 commits

Author SHA1 Message Date
Brian Anderson
38908581f7 rustdoc: Rename astsrv::ctxt.map to ast_map 2012-01-26 11:05:21 -08:00
Marijn Haverbeke
c590bdeea4 Make re-exporting of impls work
Closes #1438
2012-01-26 18:58:35 +01:00
Marijn Haverbeke
6bead0e4cc Use operator names for operator methods
The methods used to implement operators now simply use
the name of the operator itself, except for unary -, which is called
min to not clash with binary -. Index is called [].

Closes #1520
2012-01-26 15:52:28 +01:00
Marijn Haverbeke
305b1c8701 Fix small bug in iface self types
Issue #1661
2012-01-26 15:24:52 +01:00
Marijn Haverbeke
888262b337 Allow operator overloading of the indexing operator
The method `op_index` (which takes a single argument) is used for
this.

Issue #1520
2012-01-26 15:23:11 +01:00
Marijn Haverbeke
87b064b249 First stab at operator overloading
When no built-in interpretation is found for one of the operators
mentioned below, the typechecker will try to turn it into a method
call with the name written next to it. For binary operators, the
method will be called on the LHS with the RHS as only parameter.

Binary:

    +   op_add
    -   op_sub
    *   op_mul
    /   op_div
    %   op_rem
    &   op_and
    |   op_or
    ^   op_xor
    <<  op_shift_left
    >>  op_shift_right
    >>> op_ashift_right

Unary:

    -   op_neg
    !   op_not

Overloading of the indexing ([]) operator isn't finished yet.

Issue #1520
2012-01-26 14:25:06 +01:00
Marijn Haverbeke
1792d9ec96 Use string stored in codemap for pretty-printing comments and literals
Closes #1665
2012-01-26 10:52:08 +01:00
Marijn Haverbeke
ec4d05de3b Remove ty_native_fn
It was being used as a clumsy synonym of ty_fn.
2012-01-26 10:37:50 +01:00
Kevin Cantu
3afc16f7a4 Change FIXME comments in str 2012-01-25 23:20:10 -08:00
Kevin Cantu
4d7c297bea (FIX) Change encoder::encode_metadata to return a [u8] (which will become an LLVM string) 2012-01-25 22:27:29 -08:00
Kevin Cantu
5847cf0367 (TEMPORARY) Break something by making io::mem_buffer_str UTF-8 safe 2012-01-25 21:53:37 -08:00
Brian Anderson
566a4be1f8 rustdoc: Add some test enums to demo module 2012-01-25 21:04:53 -08:00
Brian Anderson
74e8b11194 rustdoc: Write markdown for enums 2012-01-25 21:04:53 -08:00
Brian Anderson
d6ce20973a rustdoc: Apply general string ops to enum docs 2012-01-25 21:04:53 -08:00
Brian Anderson
53c6454de5 rustdoc: Extract brief enum descs from long descs 2012-01-25 21:04:53 -08:00
Brian Anderson
1d94f40c6c rustdoc: Prune undocumented enums 2012-01-25 21:04:53 -08:00
Brian Anderson
95a006ce52 rustdoc: Add enum doc attributes to the doc tree 2012-01-25 21:04:53 -08:00
Brian Anderson
a25bc195e2 rustdoc: Parse variant doc attributes 2012-01-25 21:04:53 -08:00
Brian Anderson
87c3a5c1a3 rustdoc: Extract some common functions from attr_parser 2012-01-25 21:04:52 -08:00
Brian Anderson
259ea4e4b4 rustdoc: Parse enum doc attributes 2012-01-25 21:04:52 -08:00
Brian Anderson
5166cc29e9 rustdoc: Fix a copy&paste bug in attr_parser tests 2012-01-25 21:04:52 -08:00
Brian Anderson
0b9f2a8215 rustdoc: Extract variant signatures 2012-01-25 21:04:49 -08:00
Brian Anderson
b7b8455e54 rustc: Add pprust::variant_to_str 2012-01-25 17:22:08 -08:00
Brian Anderson
1586cce0ea rustdoc: Add enum folding 2012-01-25 16:56:28 -08:00
Brian Anderson
e946792a78 rustdoc: Extract enum doc nodes from AST nodes 2012-01-25 16:50:32 -08:00
Brian Anderson
2999479a2d rustc: Allow attributes on enum variants. Closes #1663 2012-01-25 16:24:06 -08:00
unknown
fe57a7e582 Add Inno Setup installer script rather than NSIS 2012-01-25 16:02:53 -08:00
Brian Anderson
08c6cb5f70 Merge pull request #1664 from kevina/issue-1612
See Issue #1612
2012-01-25 15:22:10 -08:00
Kevin Atkinson
60a146bf0f Correctly increment sess.byte_pos. 2012-01-25 16:01:58 -07:00
Kevin Atkinson
c5e03e0e59 Keep source file around after parsing.
Specifically box the string (to avoid unnecessary copies) and store it
in codemap::filemap.

Remove the hack in driver::diagnostic that rereads the source from the
file and instead just get the source from the filemap.

(This commit is also a prerequisite for issue #1612)
2012-01-25 16:00:47 -07:00
Brian Anderson
ab223e0618 Merge pull request #1627 from graydon/win32-quoting
Fix win32 command-line quoting on rust_run_program.
2012-01-25 14:33:10 -08:00
Brian Anderson
4168101b03 test: Un-xfail run-pass/tag-auto-disr-val-shape 2012-01-25 12:44:13 -08:00
Brian Anderson
19a9a475a6 test: Add regression test for #1659 2012-01-25 12:40:08 -08:00
Brian Anderson
ba7299ba65 test: Un-xfail run-pass/tag-disr-val-shape
Fixed by 96f1eda6d0
2012-01-25 12:34:37 -08:00
Marijn Haverbeke
2d4d8e8bdb Implement implicit self type parameters for ifaces
Closes #1661
2012-01-25 20:47:11 +01:00
Marijn Haverbeke
76aabbe99d Rename tag to enum throughout the compiler
This should reduce confusion of people trying to read the code.
2012-01-25 14:34:31 +01:00
Marijn Haverbeke
8420f8c52e Repair zero-variant tags
The parser no longer parsed them.
2012-01-25 14:10:33 +01:00
Marijn Haverbeke
2f0f6c782a Add bit-shifting ops to ast_util::eval_const_expr
Closes #1659
2012-01-25 13:19:32 +01:00
Kevin Cantu
fec36de94e Making str::from_cstr UTF-8 safe 2012-01-25 02:25:57 -08:00
Kevin Cantu
a185b10647 Replacing str::unsafe_from_bytes with str::from_bytes (part 6) 2012-01-25 01:42:28 -08:00
Kevin Cantu
57717fa4d8 Replacing str::unsafe_from_bytes with str::from_bytes (part 5) 2012-01-25 01:29:44 -08:00
Kevin Cantu
87320a9f27 Replacing str::unsafe_from_bytes with str::from_bytes (part 4) 2012-01-25 01:20:55 -08:00
Kevin Cantu
eaa4befd6d Replacing str::unsafe_from_bytes with str::from_bytes (part 3) 2012-01-25 01:07:05 -08:00
Kevin Cantu
64ce563c05 Replacing str::unsafe_from_bytes with str::from_bytes (part 2) 2012-01-25 01:00:21 -08:00
Kevin Cantu
c7b23f9a86 Replacing str::unsafe_from_bytes with str::from_bytes (part 1) 2012-01-25 00:53:17 -08:00
Kevin Cantu
9750e83a17 Replace uses of str::unsafe_from_byte 2012-01-24 23:47:32 -08:00
Kevin Cantu
2496dccae4 Changed type of str::from_bytes and added str::from_byte 2012-01-24 23:44:19 -08:00
Brian Anderson
61b5cc95d1 rustdoc: Add enums to the doc tree 2012-01-24 23:24:55 -08:00
Brian Anderson
b779277dae rustdoc: Add a pass to normalize indentation levels in doc comments 2012-01-24 23:24:54 -08:00
Brian Anderson
e869458914 rustdoc: Extract a general apply-function-to-strings pass from trim_pass 2012-01-24 23:24:54 -08:00
Brian Anderson
e7d7f4e4b7 rustdoc: Add a demo module with some test docs 2012-01-24 23:24:54 -08:00
Brian Anderson
45a668c439 rustdoc: Update tests for rustc diagnostic changes 2012-01-24 23:24:31 -08:00
Brian Anderson
0886b69b76 rustc: Bump the error count on non-span errors 2012-01-24 23:07:16 -08:00
Patrick Walton
9ecd5ee81d rustc: Split diagnostics into "span diagnostics" and "diagnostics".
The former contain a codemap (which is per-crate), and the latter don't. This
will be useful in order to allow more than one crate to be compiled in one run
of the compiler.
2012-01-24 21:42:54 -08:00
Brian Anderson
4d096a8c86 rustdoc: Rename gen module to markdown_pass 2012-01-24 18:18:14 -08:00
Brian Anderson
dc69355e99 rustdoc: Generate markdown for failure conditions 2012-01-24 18:17:06 -08:00
Brian Anderson
3310112169 rustdoc: Trim whitespace from failure conditions 2012-01-24 18:10:35 -08:00
Brian Anderson
a66bff6e81 rustdoc: Don't prune functions with documented failure conditions 2012-01-24 18:08:48 -08:00
Brian Anderson
efc067952d rustdoc: Add fn failure conditions to the doc tree 2012-01-24 18:05:57 -08:00
Brian Anderson
6d8058451b rustdoc: Parse fn failure conditions 2012-01-24 18:02:33 -08:00
Brian Anderson
fc64aefe0a rustdoc: Add a pass to trim whitespace from docs 2012-01-24 17:57:23 -08:00
Brian Anderson
cb44fa2a21 rustdoc: Add a pass that extracts brief docs from long docs
If the first paragraph of documentation is short then it will be used as the
brief description.
2012-01-24 17:57:23 -08:00
Kevin Cantu
4c4a5f734d Reorganizing str.rs to group and document strings better (no functional changes, though FIXMEs added) 2012-01-24 14:08:48 -08:00
Brian Anderson
19cd9686e7 comp: Fix syntax error in parser 2012-01-24 14:03:25 -08:00
Brian Anderson
6763051932 Merge pull request #1631 from j-clark/patch-2
Added to bad_expr_word_table reserved words
2012-01-24 13:57:29 -08:00
Brian Anderson
bd17319b41 Merge pull request #1637 from grahame/cargo-errors
suggest sync/init to user as appropriate
2012-01-24 12:01:39 -08:00
Jyun-Yan You
c2bf9b7726 freebsd clang support 2012-01-24 11:48:36 -08:00
Grahame Bowland
fe70212f5a suggest sync/init to user as appropriate 2012-01-25 00:08:58 +08:00
Brian Anderson
2898dcc5d9 core: Document the log levels 2012-01-24 00:54:17 -08:00
Brian Anderson
93686543e6 rustdoc: Update one of the markdown fn tests 2012-01-24 00:51:54 -08:00
Brian Anderson
c98cfa4f28 rustdoc: Write markdown for consts 2012-01-24 00:51:19 -08:00
Brian Anderson
74ab606e18 rustdoc: Prune undocumented consts 2012-01-24 00:44:47 -08:00
Brian Anderson
e3be8e689d rustdoc: Some refactoring in attr_pass 2012-01-24 00:38:36 -08:00
Brian Anderson
fbd704e77d rustdoc: Add const attr docs to doc tree 2012-01-24 00:38:35 -08:00
Brian Anderson
c93c6358cb rustdoc: Add parsing of const attribute docs 2012-01-24 00:38:35 -08:00
Brian Anderson
e6ed88df68 rustdoc: Add const types to the doc tree 2012-01-24 00:38:35 -08:00
Brian Anderson
d4e9f097b6 rustdoc: Add brief and desc fields to constdoc 2012-01-24 00:38:35 -08:00
Brian Anderson
f9a6b3731f rustdoc: Add fold_const and fold_constlist to fold 2012-01-24 00:38:35 -08:00
Brian Anderson
d66ac392fe rustdoc: Prune unexported consts 2012-01-24 00:38:35 -08:00
Brian Anderson
ab86bade97 rustdoc: Build const docs from AST consts 2012-01-24 00:38:35 -08:00
Brian Anderson
6ee7ff50b2 rustdoc: Add consts to the doc tree 2012-01-24 00:38:35 -08:00
Tim Chevalier
a3c31a08e5 Add export{} syntax to encapsulate things that should be abstract 2012-01-23 22:36:38 -08:00
Kevin Cantu
69ffb4e3ae s/fn&/fn/ 2012-01-23 22:28:25 -08:00
Kevin Cantu
8f4d1f3d27 Added str::from_bytes (which is UTF-8 safe) 2012-01-23 22:28:25 -08:00
Kevin Cantu
7608a06b33 improved test case for str::any 2012-01-23 22:28:25 -08:00
Kevin Cantu
536dd2f5a7 Added str::lines_iter 2012-01-23 22:28:25 -08:00
Kevin Cantu
1c54744e3f fixing indentation 2012-01-23 22:28:25 -08:00
Kevin Cantu
ff95029171 Added str::words_iter 2012-01-23 22:28:25 -08:00
Kevin Cantu
d4b287e852 Added str::any, str::bytes_iter, str::windowed, and vec::windowed functions 2012-01-23 22:28:25 -08:00
Kevin Cantu
0493a7c87d Added str::map and str::all functions 2012-01-23 22:28:25 -08:00
Tim Chevalier
477c3a8eb1 Merge branch 'master' into tag-docs 2012-01-23 22:22:07 -08:00
Brian Anderson
ab0eed34fd rustdoc: Prune unexported items from the doc tree 2012-01-23 22:13:34 -08:00
Tim Chevalier
c7d5e79fd8 Register snapshots 2012-01-23 21:54:09 -08:00
Joshua Clark
ceae107e14 Added to bad_expr_word_table reserved words 2012-01-23 23:19:00 -06:00
Brian Anderson
6766d0ead0 cargo: Long lines 2012-01-23 21:14:48 -08:00
Brian Anderson
5e9ca11c8d cargo: Remove unused imports - work around mystery resolve failure 2012-01-23 21:08:13 -08:00
Brian Anderson
3d08840f34 Merge pull request #1628 from startling/cargo-descriptions
Implemented package descriptions for cargo
2012-01-23 20:46:33 -08:00
tim
2c3cd1749e Added a newline after each description.
`<@graydon> maybe an extra newline to make the grouping clearer?`
2012-01-23 21:50:32 -06:00
tim
65840f3625 Get description attribute for packages from json. 2012-01-23 21:42:29 -06:00
Niko Matsakis
5e13d19cc0 s/block()/fn()/g 2012-01-23 19:06:33 -08:00
Graydon Hoare
7da3733c73 Fix win32 command-line quoting on rust_run_program. 2012-01-23 18:37:26 -08:00
tim
dfae48736f Steps towards package descriptions.
I added a description field for `package` objects (it's read from
a literal string for now) and `print_pkg` now prints descriptions if
they're there.
2012-01-23 20:23:31 -06:00
Brian Anderson
04351a84ca core: Format comm docs correctly 2012-01-23 18:07:05 -08:00
Brian Anderson
ef941998be rustdoc: Correctly indent multiline fn signatures 2012-01-23 17:58:52 -08:00
Brian Anderson
17ac98ba22 rustdoc: Use the standard markdown syntax for code blocks 2012-01-23 17:58:52 -08:00
Brian Anderson
7d5d1a311e test: Add no-reformat directive to compile-fail/issue-1362 2012-01-23 17:37:15 -08:00
Kevin Atkinson
664d9cc86f Add regression test for issue #1362.
Although its not really needed.  Without that fix, reported spans will
likely be bogus if the error is within the first couple of lines
(probable around 5) of that file.  Thus, many of the compile-fail
tests will fail due to incorrect location.
2012-01-23 17:37:15 -08:00
Kevin Atkinson
5e60facf78 Add regresion tests for issue #1448 and #1387. 2012-01-23 17:37:15 -08:00
Kevin Atkinson
4795e19d6d When replacing a pattern variable in macro expansion use the span of
the replacement and not the span of the pattern variable.

Fixes issue #1448, and #1387.
2012-01-23 17:37:15 -08:00
Kevin Atkinson
20ab47fe49 Allow ast_fold_precursor to change the span.
This involved changing the prototype for the callbacks to thread the
span though.  A wrapper function, fold::wrap, can be used to wrap the
old style callbacks.
2012-01-23 17:37:15 -08:00
Kevin Atkinson
ad21d9c64a Don't reset the chpos/byte_pos to 0 in new_parser_from_source_str.
This correctly fixes issue #1362.

chpos/byte_pos are now the offsets within a particular file, but
rather the offsets within a virtual file with is formed by combing all
of the modules within a crate.  Thus, resetting them to 0 causes an
overlap and hence, bogus source locations.

Fix #1362 by moving chpos/byte_pos to parse_sess so that
new_parser_from_source_str has access to them and hence can chose an
initial value that is not already been used in the crate.

Note that the trigger for bug 1361 was that syntax/ext/expand.rs calls
parse_expr_from_source_str (which calls new_parser_from_source_str)
using the same codemap as the current crate (and hence causing overlap
with files in the crate as new_parser_from_source_str resets the
chpos/byte_pos to 0).
2012-01-23 17:37:15 -08:00
Kevin Atkinson
355edf13e7 Change "file" of injected string from "-" to "<anon>", less confusing
that way.
2012-01-23 17:37:14 -08:00
Kevin Atkinson
1625a4320d Revert "rustc: Exclude stdin from codemap files when lookup_pos".
Need a better fix, right now it is just causing even more confusion,
for example in issue #1448 and #1387.

This reverts commit 1e4de33374.
2012-01-23 17:37:14 -08:00
Brian Anderson
93e9600a94 core: Write docs that format correctly in markdown or pandoc 2012-01-23 17:11:01 -08:00
Brian Anderson
3239f81898 core: More doc tweaks 2012-01-23 17:03:42 -08:00
Brian Anderson
7d58797453 core: Reformat the crate docs to look nicer 2012-01-23 16:58:30 -08:00
Brian Anderson
24b425567c wip 2012-01-23 16:49:29 -08:00
Brian Anderson
4e2d8d8051 core: Add crate docs 2012-01-23 16:40:51 -08:00
Brian Anderson
368daf8b5a Change rustc and rustdoc's #[desc] attribute to #[comment]
There are two attributes in use for this same purpose.
2012-01-23 16:25:20 -08:00
Brian Anderson
50d8e9f2a1 Revert "rustdoc: Get the crate brief description from the 'desc' attr"
This reverts commit 521e58a3c4.

Some crates use 'desc', some 'comment' - I want them to just use 'doc'
2012-01-23 16:23:08 -08:00
Brian Anderson
f4c31bda62 rustdoc: Print return value descriptions on same line as type 2012-01-23 16:18:01 -08:00
Brian Anderson
fa3368bc71 rustdoc: Prune undocumented return values 2012-01-23 16:18:01 -08:00
Brian Anderson
a7d3544d10 rustdoc: Don't prune functions with documented arguments 2012-01-23 16:18:01 -08:00
Brian Anderson
5cff7c093e rustdoc: Prune undocumented fn args 2012-01-23 16:18:01 -08:00
Niko Matsakis
5660b8bfb5 add msgsend.rs to benchmarks 2012-01-23 16:04:14 -08:00
Tim Chevalier
6db688e893 Check that the names mentioned in tag exports are actually types (or variants)
Check that in export foo{}, foo is an enum type, and that in export
foo{bar, quux}, foo is an enum type and bar and quux are variants belonging
to foo.
2012-01-23 15:48:08 -08:00
Tim Chevalier
9dc59e1506 Export all enum variants by default; new syntax for selectively exporting variants
See issue 1426 for details. Now, the semantics of "export t;" where t is a tag are
to export all of t's variants as well. "export t{};" exports t but not its
variants, while "export t{a, b, c};" exports only variants a, b, c of t.

To do:
- documentation
- there's currently no checking that a, b, c are actually variants of t in the
 above example
- there's also no checking that t is an enum type, in the second two examples above
- change the modules listed in issue 1426 that should have the old export
semantics to use the t{} syntax

I deleted the test export-no-tag-variants since we're doing the opposite now,
and other tests cover the same behavior.
2012-01-23 15:48:08 -08:00
Brian Anderson
e515999324 rustdoc: Prune undocumented modules 2012-01-23 15:40:01 -08:00
Brian Anderson
521e58a3c4 rustdoc: Get the crate brief description from the 'desc' attr 2012-01-23 15:16:14 -08:00
Brian Anderson
7857dcb88c rustdoc: Add a script for running rustdoc output through markdown/pandoc 2012-01-23 15:16:14 -08:00
Matthew O'Connor
d38000d1f5 Point to correct cargo-central. 2012-01-22 21:33:53 -07:00
Brian Anderson
07f8555b3e std: Add some hacks to use libuv 2012-01-22 20:06:58 -08:00
Brian Anderson
a88c0847c2 core: Reexport all the imports in f32/64 2012-01-22 16:42:00 -08:00
Brian Anderson
fb1eb1ced6 Register snapshots 2012-01-22 15:38:13 -08:00
Niko Matsakis
ec8273587c update to new tag syntax 2012-01-21 19:31:52 -08:00
Niko Matsakis
42b97f317a use u64 and not uint; otherwise shift results are undef. in 32 bit
Fixes #1605.
2012-01-21 19:31:52 -08:00
Niko Matsakis
de2bb2806f update to use u64; u32 has undefined results 2012-01-21 19:31:52 -08:00
Niko Matsakis
556947c47a wrap line 2012-01-21 19:31:52 -08:00
Niko Matsakis
85a3298229 unify size_of, align_of into one call (metrics)
create some new (xfail'd) tests looking at tag variant alignment
2012-01-21 19:31:52 -08:00
Niko Matsakis
cd1056df78 migrate size_of() and related funcs from trans into shape 2012-01-21 19:31:51 -08:00
Brian Anderson
52b1623089 std: Remove extfmt. Has been moved to core. Closes #1600 2012-01-21 13:51:54 -08:00
Graham Fawcett
fc2ae08b9c issue #1352: change param order on {std,core}::extfmt::str_init_elt to mirror vec::init_elt. 2012-01-21 13:33:16 -08:00
Graham Fawcett
7763b40c71 issue #1352: change param order on vec::init_elt, putting block in final position.
To match the init_fn() and init_fn_mut() changes.
2012-01-21 13:33:16 -08:00
Graham Fawcett
35d12be2ce fix #1352: change param order on vec::init_fn (and vec::init_fn_mut), putting block in final position. 2012-01-21 13:31:12 -08:00
Brian Anderson
29bebd3e9f Merge pull request #1598 from elly/cargo
[cargo] detect libs properly
2012-01-21 13:24:53 -08:00
Brian Anderson
3a2d52f122 Merge pull request #1599 from startling/master
Added `src/etc/vim/ftdetect/rust.vim` for vim filetype detection.
2012-01-21 13:21:39 -08:00
Brian Anderson
8c92ea49d3 core: Shuffle around a #fmt test 2012-01-21 13:20:14 -08:00
Elly Jones
059e243b16 [core] extfmt: support %% to escape a % 2012-01-21 13:12:02 -08:00
tim
1290e4181c Added a src/etc/vim/ftdetect directory and file.
Previously, in order to get vim's syntax highlighting,  you needed
to manually `:setf rust` on every file. Now vim will recognize *.rs
files as rust. This is a little nicer.
2012-01-21 15:02:17 -06:00
Elly Fong-Jones
6c7fbd27c9 [cargo] detect libs properly
The change to do build and test in different directories broke library
detection.
2012-01-21 14:59:10 -05:00