about summary refs log tree commit diff
path: root/src/libsyntax
AgeCommit message (Collapse)AuthorLines
2018-03-23Merge branch '49001_epoch' of https://github.com/klnusbaum/rust into rollupAlex Crichton-36/+36
2018-03-23Merge branch 'master' of https://github.com/Lymia/rust into rollupAlex Crichton-128/+224
2018-03-22rustc: Add a `#[wasm_import_module]` attributeAlex Crichton-0/+7
This commit adds a new attribute to the Rust compiler specific to the wasm target (and no other targets). The `#[wasm_import_module]` attribute is used to specify the module that a name is imported from, and is used like so: #[wasm_import_module = "./foo.js"] extern { fn some_js_function(); } Here the import of the symbol `some_js_function` is tagged with the `./foo.js` module in the wasm output file. Wasm-the-format includes two fields on all imports, a module and a field. The field is the symbol name (`some_js_function` above) and the module has historically unconditionally been `"env"`. I'm not sure if this `"env"` convention has asm.js or LLVM roots, but regardless we'd like the ability to configure it! The proposed ES module integration with wasm (aka a wasm module is "just another ES module") requires that the import module of wasm imports is interpreted as an ES module import, meaning that you'll need to encode paths, NPM packages, etc. As a result, we'll need this to be something other than `"env"`! Unfortunately neither our version of LLVM nor LLD supports custom import modules (aka anything not `"env"`). My hope is that by the time LLVM 7 is released both will have support, but in the meantime this commit adds some primitive encoding/decoding of wasm files to the compiler. This way rustc postprocesses the wasm module that LLVM emits to ensure it's got all the imports we'd like to have in it. Eventually I'd ideally like to unconditionally require this attribute to be placed on all `extern { ... }` blocks. For now though it seemed prudent to add it as an unstable attribute, so for now it's not required (as that'd force usage of a feature gate). Hopefully it doesn't take too long to "stabilize" this! cc rust-lang-nursery/rust-wasm#29
2018-03-22rustc: Add a `#[wasm_custom_section]` attributeAlex Crichton-0/+8
This commit is an implementation of adding custom sections to wasm artifacts in rustc. The intention here is to expose the ability of the wasm binary format to contain custom sections with arbitrary user-defined data. Currently neither our version of LLVM nor LLD supports this so the implementation is currently custom to rustc itself. The implementation here is to attach a `#[wasm_custom_section = "foo"]` attribute to any `const` which has a type like `[u8; N]`. Other types of constants aren't supported yet but may be added one day! This should hopefully be enough to get off the ground with *some* custom section support. The current semantics are that any constant tagged with `#[wasm_custom_section]` section will be *appended* to the corresponding section in the final output wasm artifact (and this affects dependencies linked in as well, not just the final crate). This means that whatever is interpreting the contents must be able to interpret binary-concatenated sections (or each constant needs to be in its own custom section). To test this change the existing `run-make` test suite was moved to a `run-make-fulldeps` folder and a new `run-make` test suite was added which applies to all targets by default. This test suite currently only has one test which only runs for the wasm target (using a node.js script to use `WebAssembly` in JS to parse the wasm output).
2018-03-22Clarify description of raw_identifiers feature flag.Lymia Aluysia-1/+1
2018-03-22Clean up raw identifier handling when recovering tokens from AST.Lymia Aluysia-4/+5
2018-03-22Rollup merge of #49117 - nivkner:fixme_fixup3, r=estebankkennytm-9/+14
address some FIXME whose associated issues were marked as closed part of #44366
2018-03-20change all appropriate EPOCH to EDITIONKurtis Nusbaum-1/+1
2018-03-20rename epoch to editionKurtis Nusbaum-36/+36
2018-03-20Auto merge of #49190 - kennytm:rollup, r=kennytmbors-60/+57
Rollup of 17 pull requests - Successful merges: #46518, #48810, #48834, #48902, #49004, #49092, #49096, #49099, #49104, #49125, #49139, #49152, #49157, #49161, #49166, #49176, #49184 - Failed merges:
2018-03-20Stabilize slice patterns without `..`Vadim Petrochenkov-12/+6
Merge `feature(advanced_slice_patterns)` into `feature(slice_patterns)`
2018-03-20Rollup merge of #49104 - csmoe:semicolon_error, r=petrochenkovkennytm-10/+1
improve error message of inner attribute syntax Fixes #49040
2018-03-20Rollup merge of #49092 - mark-i-m:deptrack_readme, r=nikomatsakiskennytm-4/+6
Replace many of the last references to readmes In particular, this removes the dep track readme, so it should not be merged before https://github.com/rust-lang-nursery/rustc-guide/pull/92 Fix #47935 cc #48478 r? @nikomatsakis
2018-03-20Rollup merge of #48834 - ysiraichi:suggest-remove-ref, r=estebankkennytm-46/+50
Suggest removing `&`s This implements the error message discussed in #47744. We check whether removing each `&` yields a type that satisfies the requested obligation. Also, it was created a new `NodeId` field in `ObligationCause` in order to iterate through the `&`s. The way it's implemented now, it iterates through the obligation snippet and counts the number of `&`. r? @estebank
2018-03-18CodeMap functions refactored.Yukio Siraichi-50/+38
- Using `span_take_while` to implement others.
2018-03-18Review fixes.Yukio Siraichi-0/+16
- `span_suggestion` changed to `span_suggestion_short`; - `Span` used changed to contain only `&` refs; - Tests passing.
2018-03-18Allow raw identifiers in diagnostic macros.Lymia Aluysia-5/+5
2018-03-18Return a is_raw parameter from Token::ident rather than having separate methods.Lymia Aluysia-34/+19
2018-03-18Move raw_identifiers check to the lexer.Lymia Aluysia-4/+5
2018-03-18Feature gate raw identifiers.Lymia Aluysia-1/+23
2018-03-18Initial implementation of RFC 2151, Raw IdentifiersLymia Aluysia-128/+215
2018-03-18Auto merge of #48985 - scalexm:lowering, r=nikomatsakisbors-0/+7
MVP for chalkification r? @nikomatsakis
2018-03-18Auto merge of #48917 - petrochenkov:import, r=oli-obkbors-169/+135
syntax: Make imports in AST closer to the source and cleanup their parsing This is a continuation of https://github.com/rust-lang/rust/pull/45846 in some sense.
2018-03-17Add some docs + Fix rebaseVadim Petrochenkov-1/+7
2018-03-17Cleanup import parsingVadim Petrochenkov-54/+23
Fix spans of root segments
2018-03-17Rename `Span::empty` to `Span::shrink_to_lo`, add `Span::shrink_to_hi`Vadim Petrochenkov-12/+12
2018-03-17AST: Keep distinction between `path` and `::path` in imports and visibilitiesVadim Petrochenkov-47/+41
Add the root segment for name resolution purposes only
2018-03-17AST: Make renames in imports closer to the sourceVadim Petrochenkov-26/+36
Fix `unused_import_braces` lint false positive on `use prefix::{self as rename}`
2018-03-17AST/HIR: Clarify what the optional name in extern crate items meanVadim Petrochenkov-30/+17
2018-03-17Reject `_` in `ident` matcherVadim Petrochenkov-17/+19
2018-03-17syntax: Make `_` an identifierVadim Petrochenkov-42/+28
2018-03-17remove FIXME(#8372) since for-loops wont support borrowing iteratorsNiv Kaminer-2/+0
2018-03-17remove FIXME(#2543) and avoid bad copiesNiv Kaminer-7/+14
2018-03-17improve attribute trailing semicolon errorcsmoe-10/+1
2018-03-17Auto merge of #48904 - Zoxc:code-and-file-maps, r=michaelwoeristerbors-41/+43
Make CodeMap and FileMap thread-safe r? @michaelwoerister
2018-03-16Replace many of the last references to readmesMark Mansi-4/+6
2018-03-16Auto merge of #48524 - abonander:check-macro-stability, r=petrochenkovbors-17/+56
check stability of macro invocations I haven't implemented tests yet but this should be a pretty solid prototype. I think as-implemented it will also stability-check macro invocations in the same crate, dunno if we want that or not. I don't know if we want this to go through `rustc::middle::stability` or not, considering the information there wouldn't be available at the time of macro expansion (even for external crates, right?). r? @nrc closes #34079 cc @petrochenkov @durka @jseyfried #38356
2018-03-16Auto merge of #49051 - kennytm:rollup, r=kennytmbors-10/+42
Rollup of 17 pull requests - Successful merges: #48706, #48875, #48892, #48922, #48957, #48959, #48961, #48965, #49007, #49024, #49042, #49050, #48853, #48990, #49037, #49049, #48972 - Failed merges:
2018-03-16Rollup merge of #48990 - ExpHP:dont-drop-the-bomb, r=estebankkennytm-2/+4
Fix ICE on malformed plugin attributes See #48941 for some discussion. This bug had several duplicate reports which were never closed as dupes: Fixes #47612 Fixes #48387 Fixes #48941 Fixes #48982
2018-03-16Rollup merge of #49007 - estebank:follow-up-47574, r=oli-obkkennytm-7/+15
Some tweaks to "type parameters from outer function" diagnostic Follow up to #47574.
2018-03-16Rollup merge of #48922 - petrochenkov:asunder, r=nikomatsakiskennytm-1/+23
Implement import renaming with `_` (RFC 2166) cc https://github.com/rust-lang/rust/issues/48216
2018-03-15Disallow &a..=b and box a..=b in pattern.kennytm-2/+27
They are disallowed because they have different precedence than expressions. I assume parenthesis in pattern will be soon stabilized and thus write that as suggestion directly.
2018-03-15Stabilize `dotdoteq_in_patterns` language feature.kennytm-8/+3
Stabilize `match 2 { 1..=3 => {} }`.
2018-03-15Stabilize `inclusive_range_syntax` language feature.kennytm-12/+2
Stabilize the syntax `a..=b` and `..=b`.
2018-03-14Auto merge of #47630 - canndrew:exhaustive-patterns, r=nikomatsakisbors-6/+2
Stabilise feature(never_type). Introduce feature(exhaustive_patterns) This stabilizes `!`, removing the feature gate as well as the old defaulting-to-`()` behavior. The pattern exhaustiveness checks which were covered by `feature(never_type)` have been moved behind a new `feature(exhaustive_patterns)` gate.
2018-03-15Use a single Lock for CodeMap.stable_id_to_filemap and CodeMap.filesJohn Kåre Alsaker-25/+32
2018-03-15Require the code mapper to be thread-safeJohn Kåre Alsaker-2/+2
2018-03-15Make CodeMap thread-safeJohn Kåre Alsaker-22/+17
2018-03-15Require a thread-safe file loaderJohn Kåre Alsaker-2/+2
2018-03-14Some tweaks to "type parameters from outer function" diagnosticEsteban Küber-7/+15
Follow up to #47574.