rust/src/libsyntax
bors b087dedf3f Auto merge of #45870 - mikeyhew:arbitrary_self_types, r=arielb1
Implement arbitrary_self_types

r? @arielb1
cc @nikomatsakis

Partial implementation of #44874.  Supports trait and struct methods with arbitrary self types, as long as the type derefs (transitively) to `Self`. Doesn't support raw-pointer `self` yet.

Methods with non-standard self types (i.e. anything other than `&self, &mut self, and Box<Self>`) are not object safe, because dynamic dispatch hasn't been implemented for them yet.

I believe this is also a (partial) fix for #27941.
2017-11-12 07:31:08 +00:00
..
diagnostics Make the difference between lint codes and error codes explicit 2017-11-02 10:19:41 +01:00
ext Lifting Generics from MethodSig to TraitItem and ImplItem since we want to support generics in each variant of TraitItem and ImplItem 2017-10-17 22:14:14 -04:00
parse Accept interpolated patterns in trait method parameters 2017-11-11 15:44:19 +03:00
print Auto merge of #45773 - Badel2:dotdoteq, r=petrochenkov 2017-11-10 01:40:21 +00:00
util Using ... in expressions is now an error 2017-11-06 20:33:51 +01:00
abi.rs add thiscall calling convention support 2017-05-24 16:40:03 -04:00
ast.rs add auto keyword, parse auto trait, lower to HIR 2017-11-03 16:13:20 -02:00
attr.rs Fix ICE 2017-09-20 20:48:06 +02:00
build.rs rustc: Add some build scripts for librustc crates 2017-07-22 22:04:13 -07:00
Cargo.toml Remove rustc_bitflags; use the bitflags crate 2017-09-17 14:19:24 -04:00
codemap.rs Display spans correctly when there are non-half-width characters 2017-11-03 03:15:39 +09:00
config.rs Make fields of Span private 2017-08-30 01:38:54 +03:00
diagnostic_list.rs Add support for ..= syntax 2017-09-22 22:05:18 +02:00
entry.rs Cleanup InternedString. 2016-11-21 09:00:56 +00:00
feature_gate.rs initial implementation of arbitrary_self_types 2017-11-07 13:36:10 -05:00
fold.rs add auto keyword, parse auto trait, lower to HIR 2017-11-03 16:13:20 -02:00
json.rs Auto merge of #45741 - oli-obk:refactor_suggestions, r=estebank 2017-11-09 15:42:26 +00:00
lib.rs Remove rustc_bitflags; use the bitflags crate 2017-09-17 14:19:24 -04:00
ptr.rs Replace some matches with try. 2017-06-07 12:15:39 +09:00
README.md rework the README.md for rustc and add other readmes 2017-09-19 09:00:59 -04:00
show_span.rs use field init shorthand EVERYWHERE 2017-08-15 15:29:17 -07:00
std_inject.rs Make fields of Span private 2017-08-30 01:38:54 +03:00
str.rs syntax: Copy unstable str::char_at into libsyntax 2015-04-21 10:23:53 -07:00
test.rs Make fields of Span private 2017-08-30 01:38:54 +03:00
test_snippet.rs Add short message-format 2017-10-20 16:04:32 +02:00
tokenstream.rs Make fields of Span private 2017-08-30 01:38:54 +03:00
visit.rs add auto keyword, parse auto trait, lower to HIR 2017-11-03 16:13:20 -02:00

NB: This crate is part of the Rust compiler. For an overview of the compiler as a whole, see the README.md file found in librustc.

The syntax crate contains those things concerned purely with syntax that is, the AST ("abstract syntax tree"), parser, pretty-printer, lexer, macro expander, and utilities for traversing ASTs.