Commit graph

37448 commits

Author SHA1 Message Date
Vishnunarayan K I
6781907444 fix tests and formatting 2020-11-12 21:08:18 +05:30
Vishnunarayan K I
8bce9af78c add error_occured field to ConstQualifs, fix #76064 2020-11-12 21:08:18 +05:30
Bastian Kauschke
80b2835dbf extend min_const_generics param ty tests 2020-11-12 16:34:53 +01:00
bors
9722952f0b Auto merge of #76256 - tgnottingham:issue-74890, r=nikomatsakis
incr-comp: hash and serialize span end line/column

Hash both the length and the end location (line/column) of a span. If we
hash only the length, for example, then two otherwise equal spans with
different end locations will have the same hash. This can cause a
problem during incremental compilation wherein a previous result for a
query that depends on the end location of a span will be incorrectly
reused when the end location of the span it depends on has changed. A
similar analysis applies if some query depends specifically on the
length of the span, but we only hash the end location. So hash both.

Fix #46744, fix #59954, fix #63161, fix #73640, fix #73967, fix #74890, fix #75900

---

See #74890 for a more in-depth analysis.

I haven't thought about what other problems this root cause could be responsible for. Please let me know if anything springs to mind. I believe the issue has existed since the inception of incremental compilation.
2020-11-12 15:34:09 +00:00
Bastian Kauschke
21f754de2a check Drop specialization of const params 2020-11-12 15:39:21 +01:00
Bastian Kauschke
3539259795 move dropck tests from ui -> ui/dropck 2020-11-12 15:31:52 +01:00
Guillaume Gomez
5e154fae92 Add tests for rustdoc --check option 2020-11-12 14:58:07 +01:00
DevJPM
b51bcc72d9 fully exploited the dropped support of LLVM 8
This commit grepped for LLVM_VERSION_GE, LLVM_VERSION_LT, get_major_version and
min-llvm-version and statically evaluated every expression possible
(and sensible) assuming that the LLVM version is >=9 now
2020-11-12 14:39:47 +01:00
thiolliere
775f1e5acd fix pretty print for qpath 2020-11-12 12:47:25 +01:00
Guillaume Gomez
a2e9e3b6af
Rollup merge of #78960 - ethanboxx:const-gen-test-default-error, r=lcnr
Test default values for const parameters.

The last topic on #78433

I originally intended to place these tests in a single file, however, due to them being parser errors that are fatal, they must be in separate files to be detected.

Thanks, ``@lcnr`` for mentoring me on this PR.

r? ``@lcnr``
2020-11-12 11:31:51 +01:00
Guillaume Gomez
0cd118d967
Rollup merge of #78916 - lcnr:const-generics-tests, r=varkor
extend const generics test suite

should implement most of #78433, especially all parts of [the hackmd](https://hackmd.io/WnFmN4MjRCqAjGmYfYcu2A?view) which I did not explicitly mention in that issue.

r? ``@varkor``
2020-11-12 11:31:45 +01:00
Rich Kadel
fe56d267ca Fix and re-enable two coverage tests on MacOS
Note, in the coverage-reports test, the comment about MacOS was wrong.
The setting is based on config.toml llvm `optimize` setting. There
doesn't appear to be any environment variable I can check, and I
don't think we should add one. Testing the binary itself is a more
reliable way to check anyway.

For the coverage-spanview test, I removed the dependency on sed
altogether, which is much less ugly than trying to work around the
MacOS sed differences.

I tested these changes on Linux, Windows, and Mac.
2020-11-11 22:54:58 -08:00
Slanterns
38fa66aac3
Rename empty_tuple_assignment to monkey_barrel 2020-11-12 10:38:03 +08:00
Poliorcetics
ecfeac58aa
Use intradoc-links for the whole test, add a @has check
Co-authored-by: Joshua Nelson <joshua@yottadb.com>
2020-11-12 01:55:28 +01:00
Alexis Bourget
9c7069645c Ignore tidy linelength 2020-11-12 01:39:06 +01:00
bors
5a6a41e784 Auto merge of #78782 - petrochenkov:nodoctok, r=Aaron1011
Do not collect tokens for doc comments

Doc comment is a single token and AST has all the information to re-create it precisely.
Doc comments are also responsible for majority of calls to `collect_tokens` (with `num_calls == 1` and `num_calls == 0`, cc https://github.com/rust-lang/rust/pull/78736).

(I also moved token collection into `fn parse_attribute` to deduplicate code a bit.)

r? `@Aaron1011`
2020-11-12 00:33:55 +00:00
Alexis Bourget
f5e67b5ee1 Add a test for r# identifiers 2020-11-12 01:05:27 +01:00
Tomasz Miąsko
d54ea4f622 Fix codegen test for issue 37945 2020-11-12 00:00:00 +00:00
Tomasz Miąsko
28463aac96 Ensure that closure call is not removed by MIR optimizations in a test 2020-11-12 00:00:00 +00:00
Tomasz Miąsko
899d9b9bd5 Fix test checking that into_boxed_slice does not panic
The memory allocation in vec might panic in the case of capacity
overflow. Move the allocation outside the function to fix the test.
2020-11-12 00:00:00 +00:00
Rune Tynan
bf04b0428f
Missing feature-gate-abi file 2020-11-11 18:38:42 -05:00
Rune Tynan
91eabf59d5
Add a sane error for rust-call functions not taking tuples during type checking, and associated UI tests 2020-11-11 18:15:39 -05:00
Ethan Brierley
1d3f9d030b default_trait_param 2020-11-11 22:49:09 +00:00
Ethan Brierley
ad7f330f52 Add test default_function_param 2020-11-11 22:48:52 +00:00
Bastian Kauschke
a9eacf33b7 add error-in-impl-trait const generics test 2020-11-11 21:24:03 +01:00
Bastian Kauschke
7d9f81517b add rustdoc test 2020-11-11 21:24:03 +01:00
Jonas Schievink
0b521e5c47
Rollup merge of #78899 - tmiasko:inline-diverging, r=oli-obk
Support inlining diverging function calls

The existing heuristic does penalize diverging calls to some degree, but since
it never inlined them previously it might need some further modifications.

Additionally introduce storage markers for all temporaries created by
the inliner. The temporary introduced for destination rebrorrow, didn't
use them previously.
2020-11-11 20:59:05 +01:00
Jonas Schievink
919177f7e4
Rollup merge of #78873 - tmiasko:inline-opts, r=oli-obk
Add flags customizing behaviour of MIR inlining

* `-Zinline-mir-threshold` to change the default threshold.
* `-Zinline-mir-hint-threshold` to change the threshold used by
  functions with inline hint.

Having those as configurable flags makes it possible to experiment with with
different inlining thresholds and substantially increase test coverage of MIR
inlining when used with increased thresholds (for example, necessary to test
#78844).
2020-11-11 20:59:03 +01:00
Jonas Schievink
2e0a0b42ad
Rollup merge of #78832 - lcnr:const-evaluatable-unevaluated, r=oli-obk
look at assoc ct, check the type of nodes

an example where types matter are function objects, see the added test which previously passed.

Now does a shallow comparison of unevaluated constants.

r? ```@oli-obk```
2020-11-11 20:59:02 +01:00
Slanterns
659aa778d3
test: add ()=()=()=... to weird-exprs.rs 2020-11-11 23:40:11 +08:00
Fabian Zaiser
de84ad95b4 Implement destructuring assignment for structs and slices
Co-authored-by: varkor <github@varkor.com>
2020-11-11 12:10:52 +00:00
Aman Arora
d0fac05d8f Add test for capturing enums 2020-11-10 22:54:04 -05:00
Aman Arora
deeb025f39 Address review comments 2 2020-11-10 20:58:58 -05:00
Aman Arora
be77402ee3 More pattern testcases 2020-11-10 20:58:56 -05:00
Roxane Fruytier
825e9e45d1 Reduce verbosity of capture analysis logs
Co-authored-by: Jenny Wills <wills.jenniferg@gmail.com>
Co-authored-by: Aman Arora <me@aman-arora.com>
2020-11-10 20:58:55 -05:00
Aman Arora
b16815b58d Update tests with min capture information
Co-authored-by: Chris Pardy <chrispardy36@gmail.com>
Co-authored-by: Logan Mosier <logmosier@gmail.com>
2020-11-10 20:58:55 -05:00
Aman Arora
145312075f Add helper function for Capture Esclations and expressions
Co-authored-by: Dhruv Jauhar <dhruvjhr@gmail.com>
2020-11-10 20:58:53 -05:00
Aman Arora
58e8f8fd2c Add initial set of testcases for RFC 2229
Co-authored-by: Dhruv Jauhar <dhruvjhr@gmail.com>
2020-11-10 20:58:52 -05:00
Aman Arora
88310cc0eb Indroduce feature flag for RFC-2229
Signed-off-by: Aman Arora <me@aman-arora.com>
2020-11-10 20:58:28 -05:00
Aman Arora
127a6ede1d Use Places to express closure/generator Captures
Co-authored-by: Archer Zhang <archer.xn@gmail.com>
2020-11-10 20:44:47 -05:00
Mara Bos
aff7bd66e8 Merge set_panic and set_print into set_output_capture.
There were no use cases for setting them separately.
Merging them simplifies some things.
2020-11-10 21:58:13 +01:00
Mara Bos
f534b75f05 Use Vec<u8> for LOCAL_STD{OUT,ERR} instead of dyn Write.
It was only ever used with Vec<u8> anyway. This simplifies some things.

- It no longer needs to be flushed, because that's a no-op anyway for
  a Vec<u8>.

- Writing to a Vec<u8> never fails.

- No #[cfg(test)] code is needed anymore to use `realstd` instead of
  `std`, because Vec comes from alloc, not std (like Write).
2020-11-10 21:58:09 +01:00
Mara Bos
ccbce1d3b2 Update tests for updated set_panic. 2020-11-10 21:57:05 +01:00
Jonas Schievink
fa4d0f2327
Rollup merge of #78912 - JulianKnodt:mcg_macro, r=lcnr
Add macro test for min-const-generics

Adds a test which uses a macro inside a block for a const-expression, as per #78433

r? `@lcnr`
2020-11-10 14:45:36 +01:00
Jonas Schievink
a5f549eeb5
Rollup merge of #78908 - liketechnik:fix_macro_expand_src_link, r=jyn514
(rustdoc) [src] link for types defined by macros shows invocation, not defintion

Previously the [src] link on types defined by a macro pointed to the macro definition.

This pr makes the Clean-Implementation for Spans aware of macro defined types, so that the link points to the invocation instead.

I'm not totally sure if it's okay to add the 'macro awareness' in the Clean-Implementation, because it erases that knowledge for all following code. Maybe it would be more sensible to add the check only for the link generation at 25f6938da4/src/librustdoc/html/render/mod.rs (L1619)

Closes #39726.
2020-11-10 14:45:32 +01:00
Jonas Schievink
6b27f0d5b9
Rollup merge of #78898 - SNCPlay42:issue-78892, r=Mark-Simulacrum
add regression test for #78892

closes #78892, which was already fixed on nightly.
2020-11-10 14:45:30 +01:00
Jonas Schievink
354098ccdd
Rollup merge of #78897 - hyd-dev:alloc-error-hook-newline, r=m-ou-se
Add missing newline to error message of the default OOM hook

Currently the default OOM hook in libstd does not end the error message with a newline:
```
memory allocation of 4 bytes failedtimeout: the monitored command dumped core
/playground/tools/entrypoint.sh: line 11:     7 Aborted                 timeout --signal=KILL ${timeout} "$`@"`
```
https://play.rust-lang.org/?version=nightly&mode=debug&edition=2018&gist=030d8223eb57dfe47ef157709aa26542

This is because the `fmt::Arguments` passed to `dumb_print()` does not end with a newline. All other calls to `dumb_print()` in libstd pass a `\n`-ended `fmt::Arguments` to `dumb_print()`. For example:
25f6938da4/library/std/src/sys_common/util.rs (L18)
I think the `\n` was forgotten in #51264.

This PR appends `\n` to the error string.

~~Note that I didn't add a test, because I didn't find tests for functions in ` library/std/src/alloc.rs` or a test that is similar to the test of this change would be.~~ *Edit: CI told me there is an existing test. Sorry.*
2020-11-10 14:45:28 +01:00
Jonas Schievink
3a2cbe6b83
Rollup merge of #78669 - sasurau4:test/check-pass-consts, r=jyn514
Use check-pass instead of build-pass in some consts ui test suits

Helps with #62277

Changed tests modified by https://github.com/rust-lang/rust/pull/57175 because of the stabilization `#![feature(const_let)]`.
They should be compile-fail because the feature gate checking disallow the feature before stabilization. So the feature gate checking have nothing to do with codegen according to https://rustc-dev-guide.rust-lang.org/feature-gate-ck.html.
2020-11-10 14:45:15 +01:00
Jonas Schievink
8c88c0324b
Rollup merge of #78574 - sasurau4:test/check-pass-regions, r=jyn514
Use check-pass instead of build-pass in regions ui test suite

## Overview

Helps with #62277

Region inference have nothing to do with codegen because they are erased before codegen.
Ref: https://rust-lang.zulipchat.com/#narrow/stream/182449-t-compiler.2Fhelp/topic/Is.20region.20inference.20.20nothing.20to.20do.20with.20codegen.20process.3F/near/215956759
2020-11-10 14:45:13 +01:00
Jonas Schievink
9596e34ad4
Rollup merge of #76765 - guswynn:async_return, r=tmandry
Make it more clear what an about async fn's returns when referring to what it returns

see #76547

This is *likely* not the ONLY place that this happens to be unclear, but we can move this fn to rustc_middle or something like that and reuse it if need be, to apply it to more diagnostics

One outstanding question I have is, if the fn returns (), should I make the message more clear (what about `fn f()` vs `fn f() -> ()`, can you tell those apart in the hir?)

R? `@tmandry`

`@rustbot` modify labels +A-diagnostics +T-compiler
2020-11-10 14:45:09 +01:00