Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move compile-fail tests to ui #44844

Closed
estebank opened this issue Sep 25, 2017 · 48 comments
Closed

Move compile-fail tests to ui #44844

estebank opened this issue Sep 25, 2017 · 48 comments
Assignees
Labels
A-diagnostics Area: Messages for errors, warnings, and lints C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. E-mentor Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion. finished-final-comment-period The final comment period is finished for this PR / Issue. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-diagnostics Working group: Diagnostics
Milestone

Comments

@estebank
Copy link
Contributor

estebank commented Sep 25, 2017

There are some cases where compile-fail errors are still needed, as ui errors require the output to be exact and consistent across executions and platforms. That being said, the vast majority of errors can be safely moved.

The process is straightforward:

  • git mv src/test/compile-fail/$FILE.rs src/test/ui/$FEATURE-DIR/$FILE.rs
  • Run the compiler tests: ./x.py test --stage 1 src/test/ui
  • ./src/test/ui/update-all-references ./build/x86_64-apple-darwin/test/ui (replace x86_64-apple-darwin with whatever environment you're working on)
  • git add src/test/ui/$FEATURE-DIR/$FILE.stderr
  • git commit -m "Moving $FILE test to ui"

You don't need to move only one file at a time, but avoid trying to do all at once, as that will probably cause too many conflicts with PRs being merged precluding these changes from landing.

The following is a list of all files and directories (without checking wether they can be moved at this time, I will audit this list at a later time):

Click to expand
  • E0001.rs
  • E0004-2.rs
  • E0004.rs
  • E0005.rs
  • E0007.rs
  • E0008.rs
  • E0009.rs
  • E0010.rs
  • E0017.rs
  • E0023.rs
  • E0025.rs
  • E0026.rs
  • E0027.rs
  • E0029.rs
  • E0030.rs
  • E0033.rs
  • E0034.rs
  • E0038.rs
  • E0040.rs
  • E0044.rs
  • E0045.rs
  • E0049.rs
  • E0050.rs
  • E0054.rs
  • E0055.rs
  • E0057.rs
  • E0059.rs
  • E0060.rs
  • E0061.rs
  • E0062.rs
  • E0063.rs
  • E0067.rs
  • E0069.rs
  • E0070.rs
  • E0071.rs
  • E0075.rs
  • E0076.rs
  • E0077.rs
  • E0080.rs
  • E0081.rs
  • E0084.rs
  • E0087.rs
  • E0088.rs
  • E0089.rs
  • E0090.rs
  • E0091.rs
  • E0092.rs
  • E0093.rs
  • E0094.rs
  • E0106.rs
  • E0107.rs
  • E0109.rs
  • E0110.rs
  • E0116.rs
  • E0117.rs
  • E0118.rs
  • E0119.rs
  • E0120.rs
  • E0121.rs
  • E0124.rs
  • E0128.rs
  • E0130.rs
  • E0131.rs
  • E0132.rs
  • E0133.rs
  • E0137.rs
  • E0138.rs
  • E0152.rs
  • E0161.rs
  • E0162.rs
  • E0164.rs
  • E0165.rs
  • E0184.rs
  • E0185.rs
  • E0186.rs
  • E0191.rs
  • E0192.rs
  • E0194.rs
  • E0195.rs
  • E0197.rs
  • E0198.rs
  • E0199.rs
  • E0200.rs
  • E0201.rs
  • E0206.rs
  • E0207.rs
  • E0214.rs
  • E0220.rs
  • E0221.rs
  • E0223.rs
  • E0225.rs
  • E0229.rs
  • E0232.rs
  • E0243.rs
  • E0244.rs
  • E0252.rs
  • E0253.rs
  • E0254.rs
  • E0255.rs
  • E0259.rs
  • E0260.rs
  • E0261.rs
  • E0262.rs
  • E0263.rs
  • E0264.rs
  • E0267.rs
  • E0268.rs
  • E0271.rs
  • E0275.rs
  • E0276.rs
  • E0277-2.rs
  • E0277.rs
  • E0282.rs
  • E0283.rs
  • E0296.rs
  • E0297.rs
  • E0301.rs
  • E0302.rs
  • E0303.rs
  • E0308-2.rs
  • E0308-4.rs
  • E0308.rs
  • E0365.rs
  • E0370.rs
  • E0374.rs
  • E0375.rs
  • E0376.rs
  • E0388.rs
  • E0389.rs
  • E0390.rs
  • E0392.rs
  • E0393.rs
  • E0394.rs
  • E0395.rs
  • E0396.rs
  • E0401.rs
  • E0403.rs
  • E0404.rs
  • E0405.rs
  • E0407.rs
  • E0408.rs
  • E0411.rs
  • E0412.rs
  • E0415.rs
  • E0416.rs
  • E0423.rs
  • E0424.rs
  • E0425.rs
  • E0426.rs
  • E0428.rs
  • E0429.rs
  • E0430.rs
  • E0431.rs
  • E0432.rs
  • E0433.rs
  • E0434.rs
  • E0435.rs
  • E0437.rs
  • E0438.rs
  • E0439.rs
  • E0440.rs
  • E0441.rs
  • E0442.rs
  • E0443.rs
  • E0444.rs
  • E0445.rs
  • E0446.rs
  • E0449.rs
  • E0451.rs
  • E0452.rs
  • E0453.rs
  • E0454.rs
  • E0458.rs
  • E0459.rs
  • E0463.rs
  • E0478.rs
  • E0492.rs
  • E0494.rs
  • E0496.rs
  • E0499.rs
  • E0501.rs
  • E0502.rs
  • E0503.rs
  • E0504.rs
  • E0505.rs
  • E0506.rs
  • E0507.rs
  • E0508.rs
  • E0509.rs
  • E0511.rs
  • E0512.rs
  • E0516.rs
  • E0517.rs
  • E0518.rs
  • E0520.rs
  • E0522.rs
  • E0527.rs
  • E0528.rs
  • E0529.rs
  • E0530.rs
  • E0534.rs
  • E0558.rs
  • E0559.rs
  • E0560.rs
  • E0565-1.rs
  • E0565.rs
  • E0572.rs
  • E0580.rs
  • E0582.rs
  • E0583.rs
  • E0585.rs
  • E0586.rs
  • E0596.rs
  • E0597.rs
  • E0600.rs
  • E0602.rs
  • E0603.rs
  • E0604.rs
  • E0605.rs
  • E0606.rs
  • E0607.rs
  • E0608.rs
  • E0609.rs
  • E0610.rs
  • E0611.rs
  • E0612.rs
  • E0614.rs
  • E0615.rs
  • E0616.rs
  • E0617.rs
  • E0618.rs
  • E0619.rs
  • E0620.rs
  • E0621-does-not-trigger-for-closures.rs
  • E0622.rs
  • E0624.rs
  • E0637.rs
  • access-mode-in-closures.rs
  • allocator
  • anon-params-deprecated.rs
  • arg-count-mismatch.rs
  • arg-type-mismatch.rs
  • array-not-vector.rs
  • array_const_index-0.rs
  • array_const_index-1.rs
  • asm-bad-clobber.rs
  • asm-gated.rs
  • asm-gated2.rs
  • asm-in-bad-modifier.rs
  • asm-misplaced-option.rs
  • asm-out-assign-imm.rs
  • asm-out-no-modifier.rs
  • asm-out-read-uninit.rs
  • asm-src-loc-codegen-units.rs
  • asm-src-loc.rs
  • assign-imm-local-twice.rs
  • assign-to-method.rs
  • assignment-operator-unimplemented.rs
  • assoc-inherent.rs
  • associated-const-ambiguity-report.rs
  • associated-const-array-len.rs
  • associated-const-dead-code.rs
  • associated-const-generic-obligations.rs
  • associated-const-impl-wrong-lifetime.rs
  • associated-const-impl-wrong-type.rs
  • associated-const-no-item.rs
  • associated-const-private-impl.rs
  • associated-const-type-parameter-arms.rs
  • associated-const-type-parameter-arrays-2.rs
  • associated-const-type-parameter-arrays.rs
  • associated-const-upper-case-lint.rs
  • associated-item-duplicate-names-2.rs
  • associated-item-duplicate-names-3.rs
  • associated-item-duplicate-names.rs
  • associated-path-shl.rs
  • associated-type-projection-ambig-between-bound-and-where-clause.rs
  • associated-type-projection-from-multiple-supertraits.rs
  • associated-type-projection-from-supertrait.rs
  • associated-types
  • associated-types-ICE-when-projecting-out-of-err.rs
  • associated-types-binding-to-type-defined-in-supertrait.rs
  • associated-types-bound-failure.rs
  • associated-types-coherence-failure.rs
  • associated-types-eq-1.rs
  • associated-types-eq-2.rs
  • associated-types-eq-3.rs
  • associated-types-eq-expr-path.rs
  • associated-types-eq-hr.rs
  • associated-types-for-unimpl-trait.rs
  • associated-types-in-ambiguous-context.rs
  • associated-types-incomplete-object.rs
  • associated-types-invalid-trait-ref-issue-18865.rs
  • associated-types-issue-17359.rs
  • associated-types-issue-20346.rs
  • associated-types-multiple-types-one-trait.rs
  • associated-types-no-suitable-bound.rs
  • associated-types-no-suitable-supertrait-2.rs
  • associated-types-no-suitable-supertrait.rs
  • associated-types-outlives.rs
  • associated-types-overridden-default.rs
  • associated-types-path-1.rs
  • associated-types-path-2.rs
  • associated-types-project-from-hrtb-in-fn-body.rs
  • associated-types-project-from-hrtb-in-fn.rs
  • associated-types-project-from-hrtb-in-struct.rs
  • associated-types-project-from-hrtb-in-trait-method.rs
  • associated-types-projection-to-unrelated-trait-in-method-without-default.rs
  • associated-types-subtyping-1.rs
  • associated-types-unconstrained.rs
  • associated-types-unsized.rs
  • attempted-access-non-fatal.rs
  • attr-bad-crate-attr.rc
  • attr-literals.rs
  • attr-on-generic-formals-are-visited.rs
  • attr-on-generic-formals-wo-feature-gate.rs
  • attr-usage-inline.rs
  • attr-usage-repr.rs
  • attrs-with-no-formal-in-generics-1.rs
  • attrs-with-no-formal-in-generics-2.rs
  • attrs-with-no-formal-in-generics-3.rs
  • augmented-assignments.rs
  • auto-ref-slice-plus-ref.rs
  • autoderef-full-lval.rs
  • bad-const-type.rs
  • bad-env-capture.rs
  • bad-env-capture2.rs
  • bad-env-capture3.rs
  • bad-expr-lhs.rs
  • bad-expr-path.rs
  • bad-expr-path2.rs
  • bad-extern-link-attrs.rs
  • bad-intrinsic-monomorphization.rs
  • bad-lint-cap.rs
  • bad-lint-cap2.rs
  • bad-lint-cap3.rs
  • bad-main.rs
  • bad-method-typaram-kind.rs
  • bad-mid-path-type-params.rs
  • bad-module.rs
  • bad-sized.rs
  • bad-type-env-capture.rs
  • binary-op-on-double-ref.rs
  • bind-by-move-neither-can-live-while-the-other-survives-2.rs
  • bind-by-move-neither-can-live-while-the-other-survives-3.rs
  • bind-by-move-neither-can-live-while-the-other-survives-4.rs
  • bind-by-move-no-guards.rs
  • binop-bitxor-str.rs
  • binop-consume-args.rs
  • binop-logic-float.rs
  • binop-logic-int.rs
  • binop-move-semantics.rs
  • binop-mul-bool.rs
  • binop-typeck.rs
  • blind-item-block-item-shadow.rs
  • blind-item-block-middle.rs
  • blind-item-item-shadow.rs
  • bogus-tag.rs
  • borrow-immutable-upvar-mutation.rs
  • borrow-tuple-fields.rs
  • borrowck
  • break-outside-loop.rs
  • builtin-superkinds-double-superkind.rs
  • builtin-superkinds-in-metadata.rs
  • builtin-superkinds-self-type.rs
  • builtin-superkinds-simple.rs
  • builtin-superkinds-typaram-not-send.rs
  • by-move-pattern-binding.rs
  • call-fn-never-arg-wrong-type.rs
  • can-begin-expr-check.rs
  • cannot-mutate-captured-non-mut-var.rs
  • capture1.rs
  • cast-as-bool.rs
  • cast-from-nil.rs
  • cast-ptr-to-int-const.rs
  • cast-rfc0401-2.rs
  • cast-to-bare-fn.rs
  • cast-to-nil.rs
  • catch-bad-lifetime.rs
  • catch-bad-type.rs
  • catch-in-match.rs
  • catch-in-while.rs
  • catch-maybe-bad-lifetime.rs
  • catch-opt-init.rs
  • cdylib-deps-must-be-static.rs
  • cfg-arg-invalid.rs
  • cfg-attr-cfg-2.rs
  • cfg-attr-crate-2.rs
  • cfg-attr-invalid-predicate.rs
  • cfg-attr-unknown-attribute-macro-expansion.rs
  • cfg-empty-codemap.rs
  • cfg-in-crate-1.rs
  • cfg-non-opt-expr.rs
  • cfg_attr_path.rs
  • changing-crates.rs
  • check-static-immutable-mut-slices.rs
  • check-static-values-constraints.rs
  • class-cast-to-trait.rs
  • class-method-missing.rs
  • class-missing-self.rs
  • cleanup-rvalue-scopes-cf.rs
  • closure-bounds-cant-promote-superkind-in-struct.rs
  • closure-bounds-static-cant-capture-borrowed.rs
  • closure-bounds-subtype.rs
  • closure-no-fn-1.rs
  • closure-no-fn-2.rs
  • closure-no-fn-3.rs
  • closure-referencing-itself-issue-25954.rs
  • closure-reform-bad.rs
  • closure-wrong-kind.rs
  • coerce-expect-unsized-ascribed.rs
  • coerce-mut.rs
  • coerce-overloaded-autoderef.rs
  • coerce-to-bang-cast.rs
  • coerce-to-bang.rs
  • coerce-unsafe-to-closure.rs
  • coercion-slice.rs
  • coherence-all-remote.rs
  • coherence-bigint-param.rs
  • coherence-blanket-conflicts-with-blanket-implemented.rs
  • coherence-blanket-conflicts-with-blanket-unimplemented.rs
  • coherence-blanket-conflicts-with-specific-cross-crate.rs
  • coherence-blanket-conflicts-with-specific-multidispatch.rs
  • coherence-blanket-conflicts-with-specific-trait.rs
  • coherence-blanket-conflicts-with-specific.rs
  • coherence-conflicting-negative-trait-impl.rs
  • coherence-cow.rs
  • coherence-cross-crate-conflict.rs
  • coherence-default-trait-impl.rs
  • coherence-error-suppression.rs
  • coherence-impl-trait-for-trait-object-safe.rs
  • coherence-impl-trait-for-trait.rs
  • coherence-impls-copy.rs
  • coherence-impls-send.rs
  • coherence-impls-sized.rs
  • coherence-inherited-assoc-ty-cycle-err.rs
  • coherence-lone-type-parameter.rs
  • coherence-negative-impls-safe.rs
  • coherence-no-direct-lifetime-dispatch.rs
  • coherence-orphan.rs
  • coherence-overlap-all-t-and-tuple.rs
  • coherence-overlap-downstream-inherent.rs
  • coherence-overlap-downstream.rs
  • coherence-overlap-issue-23516-inherent.rs
  • coherence-overlap-issue-23516.rs
  • coherence-overlap-messages.rs
  • coherence-overlap-upstream-inherent.rs
  • coherence-overlap-upstream.rs
  • coherence-overlapping-pairs.rs
  • coherence-pair-covered-uncovered-1.rs
  • coherence-pair-covered-uncovered.rs
  • coherence-projection-conflict-orphan.rs
  • coherence-projection-conflict-ty-param.rs
  • coherence-projection-conflict.rs
  • coherence-projection-ok-orphan.rs
  • coherence-projection-ok.rs
  • coherence-tuple-conflict.rs
  • coherence-vec-local-2.rs
  • coherence-vec-local.rs
  • coherence_copy_like_err_fundamental_struct.rs
  • coherence_copy_like_err_fundamental_struct_ref.rs
  • coherence_copy_like_err_fundamental_struct_tuple.rs
  • coherence_copy_like_err_struct.rs
  • coherence_copy_like_err_tuple.rs
  • coherence_inherent.rs
  • coherence_inherent_cc.rs
  • coherence_local.rs
  • coherence_local_err_struct.rs
  • coherence_local_err_tuple.rs
  • coherence_local_ref.rs
  • compile_error_macro.rs
  • concat.rs
  • concat_idents-gate.rs
  • concat_idents-gate2.rs
  • conflicting-repr-hints.rs
  • const-array-oob-arith.rs
  • const-array-oob.rs
  • const-block-non-item-statement-2.rs
  • const-block-non-item-statement-3.rs
  • const-block-non-item-statement.rs
  • const-call.rs
  • const-cast-different-types.rs
  • const-cast-wrong-type.rs
  • const-deref-ptr.rs
  • const-err-early.rs
  • const-err-multi.rs
  • const-err.rs
  • const-err2.rs
  • const-eval-overflow-2.rs
  • const-eval-overflow-3.rs
  • const-eval-overflow-3b.rs
  • const-eval-overflow-4.rs
  • const-eval-overflow-4b.rs
  • const-eval-overflow.rs
  • const-eval-span.rs
  • const-fn-destructuring-arg.rs
  • const-fn-error.rs
  • const-fn-feature-flags.rs
  • const-fn-mismatch.rs
  • const-fn-not-in-trait.rs
  • const-fn-not-safe-for-const.rs
  • const-fn-stability-calls-3.rs
  • const-fn-stability.rs
  • const-index-feature-gate.rs
  • const-integer-bool-ops.rs
  • const-len-underflow-separate-spans.rs
  • const-len-underflow-subspans.rs
  • const-match-pattern-arm.rs
  • const-pattern-irrefutable.rs
  • const-pattern-not-const-evaluable.rs
  • const-recursive.rs
  • const-size_of-cycle.rs
  • const-slice-oob.rs
  • const-tup-index-span.rs
  • const-unsized.rs
  • constructor-lifetime-args.rs
  • copy-a-resource.rs
  • crate-name-mismatch.rs
  • crateresolve1.rs
  • cross-borrow-trait.rs
  • cross-fn-cache-hole.rs
  • custom_attribute.rs
  • cycle-projection-based-on-where-clause.rs
  • cycle-trait-default-type-trait.rs
  • cycle-trait-supertrait-direct.rs
  • cycle-trait-supertrait-indirect.rs
  • dead-code-closure-bang.rs
  • dead-code-ret.rs
  • defaulted-unit-warning.rs
  • dep-graph-assoc-type-trans.rs
  • dep-graph-caller-callee.rs
  • dep-graph-struct-signature.rs
  • dep-graph-trait-impl-two-traits-same-method.rs
  • dep-graph-trait-impl-two-traits.rs
  • dep-graph-trait-impl.rs
  • dep-graph-type-alias.rs
  • dep-graph-variance-alias.rs
  • dep_graph_crosscontaminate_tables.rs
  • deprecated_no_stack_check.rs
  • deprecation-in-staged-api.rs
  • deprecation-lint-2.rs
  • deprecation-lint-3.rs
  • deprecation-lint-nested.rs
  • deprecation-lint.rs
  • deprecation-sanity.rs
  • deref-non-pointer.rs
  • derive-assoc-type-not-impl.rs
  • derived-errors
  • derives-span-Clone-enum-struct-variant.rs
  • derives-span-Clone-enum.rs
  • derives-span-Clone-struct.rs
  • derives-span-Clone-tuple-struct.rs
  • derives-span-Debug-enum-struct-variant.rs
  • derives-span-Debug-enum.rs
  • derives-span-Debug-struct.rs
  • derives-span-Debug-tuple-struct.rs
  • derives-span-Default-struct.rs
  • derives-span-Default-tuple-struct.rs
  • derives-span-Eq-enum-struct-variant.rs
  • derives-span-Eq-enum.rs
  • derives-span-Eq-struct.rs
  • derives-span-Eq-tuple-struct.rs
  • derives-span-Hash-enum-struct-variant.rs
  • derives-span-Hash-enum.rs
  • derives-span-Hash-struct.rs
  • derives-span-Hash-tuple-struct.rs
  • derives-span-Ord-enum-struct-variant.rs
  • derives-span-Ord-enum.rs
  • derives-span-Ord-struct.rs
  • derives-span-Ord-tuple-struct.rs
  • derives-span-PartialEq-enum-struct-variant.rs
  • derives-span-PartialEq-enum.rs
  • derives-span-PartialEq-struct.rs
  • derives-span-PartialEq-tuple-struct.rs
  • derives-span-PartialOrd-enum-struct-variant.rs
  • derives-span-PartialOrd-enum.rs
  • derives-span-PartialOrd-struct.rs
  • derives-span-PartialOrd-tuple-struct.rs
  • deriving-bounds.rs
  • deriving-copyclone.rs
  • deriving-meta-unknown-trait.rs
  • deriving-no-inner-impl-error-message.rs
  • deriving-non-type.rs
  • deriving-primitive.rs
  • destructure-trait-ref.rs
  • directory_ownership
  • disallowed-deconstructing-destructing-struct-let.rs
  • disallowed-deconstructing-destructing-struct-match.rs
  • discrim-ill-typed.rs
  • discrim-overflow-2.rs
  • discrim-overflow.rs
  • diverging-fn-tail-35849.rs
  • diverging-tuple-parts-39485.rs
  • does-nothing.rs
  • dollar-crate-is-keyword-2.rs
  • dollar-crate-is-keyword.rs
  • double-import.rs
  • double-type-import.rs
  • drop-on-non-struct.rs
  • drop-with-active-borrows-1.rs
  • drop-with-active-borrows-2.rs
  • dropck_no_diverge_on_nonregular_1.rs
  • dropck_no_diverge_on_nonregular_2.rs
  • dropck_no_diverge_on_nonregular_3.rs
  • dropck_trait_cycle_checked.rs
  • dst-bad-assign-2.rs
  • dst-bad-assign-3.rs
  • dst-bad-assign.rs
  • dst-bad-coerce1.rs
  • dst-bad-coerce2.rs
  • dst-bad-coerce3.rs
  • dst-bad-coerce4.rs
  • dst-bad-coercions.rs
  • dst-bad-deep-2.rs
  • dst-bad-deep.rs
  • dst-index.rs
  • dst-object-from-unsized-type.rs
  • dst-rvalue.rs
  • dst-sized-trait-param.rs
  • dupe-symbols-1.rs
  • dupe-symbols-2.rs
  • dupe-symbols-3.rs
  • dupe-symbols-4.rs
  • dupe-symbols-5.rs
  • dupe-symbols-6.rs
  • dupe-symbols-7.rs
  • duplicate-check-macro-exports.rs
  • duplicate-parameter.rs
  • duplicate-type-parameter.rs
  • duplicate_entry_error.rs
  • elided-test.rs
  • empty-comment.rs
  • empty-extern-arg.rs
  • empty-linkname.rs
  • empty-macro-use.rs
  • empty-struct-braces-expr.rs
  • empty-struct-braces-pat-1.rs
  • empty-struct-braces-pat-2.rs
  • empty-struct-braces-pat-3.rs
  • empty-struct-tuple-pat.rs
  • empty-struct-unit-expr.rs
  • empty-struct-unit-pat.rs
  • enable-unstable-lib-feature.rs
  • enum-and-module-in-same-scope.rs
  • enum-discrim-autosizing.rs
  • enum-discrim-too-small.rs
  • enum-discrim-too-small2.rs
  • enum-in-scope.rs
  • enum-to-float-cast-2.rs
  • enum-to-float-cast.rs
  • enum-variant-type-2.rs
  • enums-pats-not-idents.rs
  • error-should-say-copy-not-pod.rs
  • estr-subtyping.rs
  • eval-enum.rs
  • exclusive-drop-and-copy.rs
  • exclusive_range_pattern_syntax_collision.rs
  • exclusive_range_pattern_syntax_collision2.rs
  • exclusive_range_pattern_syntax_collision3.rs
  • expanded-cfg.rs
  • explicit-call-to-dtor.rs
  • explicit-call-to-supertrait-dtor.rs
  • explicit-self-lifetime-mismatch.rs
  • export-fully-qualified.rs
  • export-import.rs
  • export-tag-variant.rs
  • export.rs
  • export2.rs
  • expr_attr_paren_order.rs
  • ext-nonexistent.rs
  • extenv-arg-2-not-string-literal.rs
  • extenv-no-args.rs
  • extenv-not-defined-custom.rs
  • extenv-not-defined-default.rs
  • extenv-not-string-literal.rs
  • extenv-too-many-args.rs
  • extern-crate-visibility.rs
  • extern-main-fn.rs
  • extern-with-type-bounds.rs
  • extern-wrong-value-type.rs
  • extoption_env-no-args.rs
  • extoption_env-not-string-literal.rs
  • extoption_env-too-many-args.rs
  • fail-no-dead-code-core.rs
  • fail-no-dead-code.rs
  • fail-simple.rs
  • fat-ptr-cast.rs
  • feature-gate
  • feature-gate-abi-msp430-interrupt.rs
  • feature-gate-abi-sysv64.rs
  • feature-gate-abi.rs
  • feature-gate-advanced-slice-features.rs
  • feature-gate-allocator_internals.rs
  • feature-gate-allow-internal-unsafe-nested-macro.rs
  • feature-gate-allow-internal-unstable-nested-macro.rs
  • feature-gate-allow-internal-unstable-struct.rs
  • feature-gate-allow-internal-unstable.rs
  • feature-gate-allow_fail.rs
  • feature-gate-assoc-type-defaults.rs
  • feature-gate-box-expr.rs
  • feature-gate-box-pat.rs
  • feature-gate-catch_expr.rs
  • feature-gate-cfg-target-feature.rs
  • feature-gate-cfg-target-has-atomic.rs
  • feature-gate-cfg-target-thread-local.rs
  • feature-gate-cfg-target-vendor.rs
  • feature-gate-clone-closures.rs
  • feature-gate-compiler-builtins.rs
  • feature-gate-const-indexing.rs
  • feature-gate-copy-closures.rs
  • feature-gate-decl_macro.rs
  • feature-gate-doc_cfg.rs
  • feature-gate-doc_masked.rs
  • feature-gate-dropck-ugeh-2.rs
  • feature-gate-dropck-ugeh.rs
  • feature-gate-exclusive-range-pattern.rs
  • feature-gate-feature-gate.rs
  • feature-gate-fn_must_use-cap-lints-allow.rs
  • feature-gate-fn_must_use.rs
  • feature-gate-fundamental.rs
  • feature-gate-generators.rs
  • feature-gate-global_allocator.rs
  • feature-gate-global_asm.rs
  • feature-gate-intrinsics.rs
  • feature-gate-lang-items.rs
  • feature-gate-linker-flavor.rs
  • feature-gate-macro-vis-matcher.rs
  • feature-gate-main.rs
  • feature-gate-match_beginning_vert.rs
  • feature-gate-may-dangle.rs
  • feature-gate-needs-allocator.rs
  • feature-gate-negate-unsigned.rs
  • feature-gate-no-debug-2.rs
  • feature-gate-no-debug.rs
  • feature-gate-omit-gdb-pretty-printer-section.rs
  • feature-gate-on-unimplemented.rs
  • feature-gate-optin-builtin-traits.rs
  • feature-gate-overlapping_marker_traits.rs
  • feature-gate-placement-expr.rs
  • feature-gate-plugin.rs
  • feature-gate-prelude_import.rs
  • feature-gate-profiler-runtime.rs
  • feature-gate-repr-simd.rs
  • feature-gate-repr128.rs
  • feature-gate-repr_align.rs
  • feature-gate-rustc-attrs.rs
  • feature-gate-rustc-diagnostic-macros.rs
  • feature-gate-rustc_const_unstable.rs
  • feature-gate-sanitizer-runtime.rs
  • feature-gate-simd-ffi.rs
  • feature-gate-simd.rs
  • feature-gate-slice-patterns.rs
  • feature-gate-staged_api.rs
  • feature-gate-start.rs
  • feature-gate-static-nobundle.rs
  • feature-gate-stmt_expr_attributes.rs
  • feature-gate-unboxed-closures-manual-impls.rs
  • feature-gate-unboxed-closures-method-calls.rs
  • feature-gate-unboxed-closures-ufcs-calls.rs
  • feature-gate-unboxed-closures.rs
  • feature-gate-underscore-lifetimes.rs
  • feature-gate-unsized_tuple_coercion.rs
  • feature-gate-unwind-attributes.rs
  • feature-gate-used.rs
  • feature-gated-feature-in-macro-arg.rs
  • float-literal-inference-restrictions.rs
  • fn-bad-block-type.rs
  • fn-compare-mismatch.rs
  • fn-item-type.rs
  • fn-trait-formatting.rs
  • for-expn.rs
  • for-loop-bogosity.rs
  • for-loop-hygiene.rs
  • for-loop-refutable-pattern-error-message.rs
  • for-loop-type-error.rs
  • for-loop-unconstrained-element-type.rs
  • foreign-fn-return-lifetime.rs
  • foreign-unsafe-fn-called.rs
  • forget-init-unsafe.rs
  • fully-qualified-type-name1.rs
  • fully-qualified-type-name2.rs
  • fully-qualified-type-name3.rs
  • fully-qualified-type-name4.rs
  • functional-struct-update-noncopyable.rs
  • functional-struct-update-respects-privacy.rs
  • future-incompatible-lint-group.rs
  • gated-attr-literals.rs
  • gated-bad-feature.rs
  • gated-box-syntax.rs
  • gated-concat_idents.rs
  • gated-link-args.rs
  • gated-link-llvm-intrinsics.rs
  • gated-naked_functions.rs
  • gated-no-core.rs
  • gated-non-ascii-idents.rs
  • gated-plugin_registrar.rs
  • gated-target_feature.rs
  • gated-thread-local.rs
  • gated-trace_macros.rs
  • generic-extern-lifetime.rs
  • generic-extern.rs
  • generic-impl-less-params-with-defaults.rs
  • generic-impl-more-params-with-defaults.rs
  • generic-lifetime-trait-impl.rs
  • generic-no-mangle.rs
  • generic-non-trailing-defaults.rs
  • generic-type-less-params-with-defaults.rs
  • generic-type-more-params-with-defaults.rs
  • generic-type-params-forward-mention.rs
  • generic-type-params-name-repr.rs
  • glob-cycles.rs
  • glob-resolve1.rs
  • hashmap-iter-value-lifetime.rs
  • hashmap-lifetimes.rs
  • hidden-rt-injection.rs
  • hidden-rt-injection2.rs
  • hr-subtype.rs
  • hrtb-conflate-regions.rs
  • hrtb-debruijn-in-receiver.rs
  • hrtb-higher-ranker-supertraits-transitive.rs
  • hrtb-higher-ranker-supertraits.rs
  • hrtb-identity-fn-borrows.rs
  • hrtb-just-for-static.rs
  • hrtb-perfect-forwarding.rs
  • huge-array-simple.rs
  • huge-array.rs
  • huge-enum.rs
  • huge-struct.rs
  • hygiene
  • hygienic-label-1.rs
  • hygienic-label-2.rs
  • hygienic-label-3.rs
  • hygienic-label-4.rs
  • i128-feature-2.rs
  • i128-feature-libs.rs
  • i128-feature.rs
  • if-branch-types.rs
  • if-let-arm-types.rs
  • if-let.rs
  • if-loop.rs
  • if-typeck.rs
  • if-without-else-result.rs
  • ifmt-bad-arg.rs
  • ifmt-bad-format-args.rs
  • ifmt-unimpl.rs
  • ifmt-unknown-trait.rs
  • illegal-ufcs-drop.rs
  • immut-function-arguments.rs
  • impl-bounds-checking.rs
  • impl-duplicate-methods.rs
  • impl-trait
  • impl-unused-rps-in-assoc-type.rs
  • impl-unused-tps-inherent.rs
  • impl-unused-tps.rs
  • implicit-method-bind.rs
  • import-crate-var.rs
  • import-from-missing.rs
  • import-glob-0.rs
  • import-glob-circular.rs
  • import-loop-2.rs
  • import-loop.rs
  • import-prefix-macro-1.rs
  • import-prefix-macro-2.rs
  • import-trait-method.rs
  • import.rs
  • import2.rs
  • import3.rs
  • import4.rs
  • imports
  • impossible_range.rs
  • inaccessible-test-modules.rs
  • incr_comp_with_macro_export.rs
  • index-bot.rs
  • index_message.rs
  • indexing-requires-a-uint.rs
  • infinite-autoderef.rs
  • infinite-instantiation.rs
  • infinite-macro-expansion.rs
  • infinite-tag-type-recursion.rs
  • infinite-vec-type-recursion.rs
  • inhabitedness-infinite-loop.rs
  • inner-static-type-parameter.rs
  • integer-literal-suffix-inference.rs
  • integral-indexing.rs
  • integral-variable-unification-error.rs
  • internal-unstable-noallow.rs
  • internal-unstable-thread-local.rs
  • internal-unstable.rs
  • intrinsic-invalid-number-of-arguments.rs
  • invalid-crate-type.rs
  • invalid-inline.rs
  • invalid-macro-matcher.rs
  • invalid-path-in-const.rs
  • invalid-plugin-attr.rs
  • invalid_crate_type_syntax.rs
  • isssue-38821.rs
  • issue-10176.rs
  • issue-10200.rs
  • issue-10291.rs
  • issue-10398.rs
  • issue-10401.rs
  • issue-10465.rs
  • issue-10536.rs
  • issue-10545.rs
  • issue-10656.rs
  • issue-10755.rs
  • issue-10764.rs
  • issue-10877.rs
  • issue-10969.rs
  • issue-10991.rs
  • issue-11004.rs
  • issue-11154.rs
  • issue-11192.rs
  • issue-11319.rs
  • issue-11374.rs
  • issue-11493.rs
  • issue-11515.rs
  • issue-11593.rs
  • issue-11680.rs
  • issue-11681.rs
  • issue-11692-1.rs
  • issue-11692-2.rs
  • issue-11740.rs
  • issue-11771.rs
  • issue-11844.rs
  • issue-11873.rs
  • issue-12028.rs
  • issue-12041.rs
  • issue-12116.rs
  • issue-12127.rs
  • issue-12187-1.rs
  • issue-12187-2.rs
  • issue-12369.rs
  • issue-12470.rs
  • issue-12511.rs
  • issue-12552.rs
  • issue-12567.rs
  • issue-12796.rs
  • issue-12863.rs
  • issue-12997-1.rs
  • issue-12997-2.rs
  • issue-13033.rs
  • issue-13058.rs
  • issue-13352.rs
  • issue-13359.rs
  • issue-13404.rs
  • issue-13407.rs
  • issue-13446.rs
  • issue-13466.rs
  • issue-13482-2.rs
  • issue-13482.rs
  • issue-13497-2.rs
  • issue-13497.rs
  • issue-1362.rs
  • issue-13641.rs
  • issue-13727.rs
  • issue-13847.rs
  • issue-13853-2.rs
  • issue-13853-5.rs
  • issue-13853.rs
  • issue-14084.rs
  • issue-14091-2.rs
  • issue-14091.rs
  • issue-14092.rs
  • issue-14221.rs
  • issue-14227.rs
  • issue-14285.rs
  • issue-14309.rs
  • issue-14366.rs
  • issue-1448-2.rs
  • issue-14541.rs
  • issue-14721.rs
  • issue-1476.rs
  • issue-14772.rs
  • issue-14845.rs
  • issue-14853.rs
  • issue-14915.rs
  • issue-15034.rs
  • issue-15094.rs
  • issue-15129.rs
  • issue-15167.rs
  • issue-15207.rs
  • issue-15260.rs
  • issue-15381.rs
  • issue-15524.rs
  • issue-15756.rs
  • issue-15783.rs
  • issue-15896.rs
  • issue-15919.rs
  • issue-15965.rs
  • issue-16048.rs
  • issue-16098.rs
  • issue-16149.rs
  • issue-16250.rs
  • issue-16338.rs
  • issue-16401.rs
  • issue-16538.rs
  • issue-16562.rs
  • issue-16683.rs
  • issue-16725.rs
  • issue-16747.rs
  • issue-16922.rs
  • issue-16939.rs
  • issue-16966.rs
  • issue-1697.rs
  • issue-16994.rs
  • issue-17001.rs
  • issue-17025.rs
  • issue-17033.rs
  • issue-17252.rs
  • issue-17263.rs
  • issue-17337.rs
  • issue-17373.rs
  • issue-17385.rs
  • issue-17405.rs
  • issue-17431-1.rs
  • issue-17431-2.rs
  • issue-17431-3.rs
  • issue-17431-4.rs
  • issue-17431-5.rs
  • issue-17431-6.rs
  • issue-17431-7.rs
  • issue-17441.rs
  • issue-17444.rs
  • issue-17450.rs
  • issue-17458.rs
  • issue-17545.rs
  • issue-17546.rs
  • issue-17551.rs
  • issue-17651.rs
  • issue-17718-borrow-interior.rs
  • issue-17718-const-bad-values.rs
  • issue-17718-const-borrow.rs
  • issue-17718-const-naming.rs
  • issue-17718-const-privacy.rs
  • issue-17718-constants-not-static.rs
  • issue-17718-patterns.rs
  • issue-17718-recursive.rs
  • issue-17718-references.rs
  • issue-17718-static-move.rs
  • issue-17718-static-sync.rs
  • issue-17728.rs
  • issue-17740.rs
  • issue-17758.rs
  • issue-17800.rs
  • issue-17904-2.rs
  • issue-17905.rs
  • issue-17913.rs
  • issue-17933.rs
  • issue-17954.rs
  • issue-17959.rs
  • issue-17994.rs
  • issue-17999.rs
  • issue-18058.rs
  • issue-18107.rs
  • issue-18118-2.rs
  • issue-18118.rs
  • issue-18119.rs
  • issue-18159.rs
  • issue-18183.rs
  • issue-18294.rs
  • issue-18389.rs
  • issue-18400.rs
  • issue-18423.rs
  • issue-18446.rs
  • issue-18532.rs
  • issue-18566.rs
  • issue-18611.rs
  • issue-1871.rs
  • issue-18783.rs
  • issue-18819.rs
  • issue-18919.rs
  • issue-18937.rs
  • issue-18959.rs
  • issue-1900.rs
  • issue-19086.rs
  • issue-19163.rs
  • issue-1920-1.rs
  • issue-1920-2.rs
  • issue-1920-3.rs
  • issue-19244-1.rs
  • issue-19244-2.rs
  • issue-19380.rs
  • issue-19482.rs
  • issue-19498.rs
  • issue-19521.rs
  • issue-19538.rs
  • issue-19601.rs
  • issue-1962.rs
  • issue-19660.rs
  • issue-19692.rs
  • issue-19707.rs
  • issue-19734.rs
  • issue-19883.rs
  • issue-19922.rs
  • issue-19982.rs
  • issue-19991.rs
  • issue-20005.rs
  • issue-20162.rs
  • issue-20225.rs
  • issue-20261.rs
  • issue-20313.rs
  • issue-20413.rs
  • issue-20433.rs
  • issue-20605.rs
  • issue-20616-1.rs
  • issue-20616-2.rs
  • issue-20616-3.rs
  • issue-20616-4.rs
  • issue-20616-5.rs
  • issue-20616-6.rs
  • issue-20616-7.rs
  • issue-20616-8.rs
  • issue-20616-9.rs
  • issue-20692.rs
  • issue-20714.rs
  • issue-20772.rs
  • issue-20801.rs
  • issue-20825.rs
  • issue-20831-debruijn.rs
  • issue-20939.rs
  • issue-21045.rs
  • issue-2111.rs
  • issue-21146.rs
  • issue-21160.rs
  • issue-21174.rs
  • issue-21177.rs
  • issue-21202.rs
  • issue-21332.rs
  • issue-21356.rs
  • issue-21449.rs
  • issue-2149.rs
  • issue-2150.rs
  • issue-2151.rs
  • issue-21546.rs
  • issue-21554.rs
  • issue-21600.rs
  • issue-21701.rs
  • issue-21763.rs
  • issue-21837.rs
  • issue-21946.rs
  • issue-21950.rs
  • issue-21974.rs
  • issue-22034.rs
  • issue-22037.rs
  • issue-22289.rs
  • issue-22312.rs
  • issue-22370.rs
  • issue-22384.rs
  • issue-22434.rs
  • issue-22468.rs
  • issue-22560.rs
  • issue-22599.rs
  • issue-22603.rs
  • issue-22638.rs
  • issue-22673.rs
  • issue-22684.rs
  • issue-22706.rs
  • issue-22789.rs
  • issue-2281-part1.rs
  • issue-22874.rs
  • issue-22886.rs
  • issue-22933-1.rs
  • issue-22933-2.rs
  • issue-22933-3.rs
  • issue-23024.rs
  • issue-23041.rs
  • issue-23046.rs
  • issue-23073.rs
  • issue-23080-2.rs
  • issue-23080.rs
  • issue-23122-1.rs
  • issue-23122-2.rs
  • issue-23173.rs
  • issue-23217.rs
  • issue-23253.rs
  • issue-23281.rs
  • issue-2330.rs
  • issue-23302.rs
  • issue-23543.rs
  • issue-23544.rs
  • issue-23589.rs
  • issue-23595-1.rs
  • issue-23595-2.rs
  • issue-23716.rs
  • issue-23966.rs
  • issue-24013.rs
  • issue-24036.rs
  • issue-24081.rs
  • issue-24204.rs
  • issue-24267-flow-exit.rs
  • issue-24322.rs
  • issue-24352.rs
  • issue-24357.rs
  • issue-24363.rs
  • issue-24365.rs
  • issue-24424.rs
  • issue-24446.rs
  • issue-24682.rs
  • issue-24819.rs
  • issue-24883.rs
  • issue-25076.rs
  • issue-25368.rs
  • issue-25385.rs
  • issue-25386.rs
  • issue-25396.rs
  • issue-25579.rs
  • issue-25700.rs
  • issue-25793.rs
  • issue-25826.rs
  • issue-2590.rs
  • issue-25901.rs
  • issue-26056.rs
  • issue-26093.rs
  • issue-26094.rs
  • issue-26158.rs
  • issue-26194.rs
  • issue-26217.rs
  • issue-26237.rs
  • issue-26262.rs
  • issue-26459.rs
  • issue-26472.rs
  • issue-26614.rs
  • issue-26638.rs
  • issue-26812.rs
  • issue-26886.rs
  • issue-26905.rs
  • issue-26930.rs
  • issue-26948.rs
  • issue-27008.rs
  • issue-27033.rs
  • issue-27042.rs
  • issue-2718-a.rs
  • issue-27340.rs
  • issue-27433.rs
  • issue-27592.rs
  • issue-27815.rs
  • issue-27842.rs
  • issue-27895.rs
  • issue-27942.rs
  • issue-28075.rs
  • issue-28098.rs
  • issue-28105.rs
  • issue-28109.rs
  • issue-28113.rs
  • issue-2823.rs
  • issue-28324.rs
  • issue-28344.rs
  • issue-28388-1.rs
  • issue-28388-2.rs
  • issue-28388-3.rs
  • issue-28433.rs
  • issue-28472.rs
  • issue-2848.rs
  • issue-2849.rs
  • issue-28568.rs
  • issue-28576.rs
  • issue-28586.rs
  • issue-28625.rs
  • issue-28776.rs
  • issue-28837.rs
  • issue-28848.rs
  • issue-28971.rs
  • issue-28992-empty.rs
  • issue-29084.rs
  • issue-29124.rs
  • issue-29147.rs
  • issue-29161.rs
  • issue-29181.rs
  • issue-29184.rs
  • issue-2937.rs
  • issue-2951.rs
  • issue-29857.rs
  • issue-29861.rs
  • issue-2995.rs
  • issue-30007.rs
  • issue-30079.rs
  • issue-3008-1.rs
  • issue-3008-2.rs
  • issue-3008-3.rs
  • issue-30123.rs
  • issue-3021-b.rs
  • issue-3021-c.rs
  • issue-3021-d.rs
  • issue-3021.rs
  • issue-30225.rs
  • issue-30236.rs
  • issue-30240-b.rs
  • issue-30240.rs
  • issue-30255.rs
  • issue-30302.rs
  • issue-3038.rs
  • issue-30438-a.rs
  • issue-30438-b.rs
  • issue-30438-c.rs
  • issue-3044.rs
  • issue-30535.rs
  • issue-30560.rs
  • issue-30589.rs
  • issue-30730.rs
  • issue-3080.rs
  • issue-3096-1.rs
  • issue-3096-2.rs
  • issue-3099-a.rs
  • issue-3099-b.rs
  • issue-3099.rs
  • issue-31011.rs
  • issue-31109.rs
  • issue-31173.rs
  • issue-31212.rs
  • issue-31221.rs
  • issue-31495.rs
  • issue-31511.rs
  • issue-3154.rs
  • issue-31561.rs
  • issue-31769.rs
  • issue-31804.rs
  • issue-31845.rs
  • issue-31910.rs
  • issue-32004.rs
  • issue-32086.rs
  • issue-32119.rs
  • issue-3214.rs
  • issue-32201.rs
  • issue-32222.rs
  • issue-32323.rs
  • issue-32326.rs
  • issue-32377.rs
  • issue-32655.rs
  • issue-32709.rs
  • issue-32782.rs
  • issue-32797.rs
  • issue-32829.rs
  • issue-32833.rs
  • issue-32922.rs
  • issue-32950.rs
  • issue-32963.rs
  • issue-32995-2.rs
  • issue-32995.rs
  • issue-33293.rs
  • issue-3344.rs
  • issue-33464.rs
  • issue-33504.rs
  • issue-33571.rs
  • issue-33819.rs
  • issue-34028.rs
  • issue-34047.rs
  • issue-34171.rs
  • issue-34194.rs
  • issue-34209.rs
  • issue-34222-1.rs
  • issue-34334.rs
  • issue-34349.rs
  • issue-34373.rs
  • issue-34418.rs
  • issue-3477.rs
  • issue-34839.rs
  • issue-35075.rs
  • issue-35139.rs
  • issue-3521-2.rs
  • issue-3521.rs
  • issue-35450.rs
  • issue-35570.rs
  • issue-35668.rs
  • issue-35869.rs
  • issue-35988.rs
  • issue-3601.rs
  • issue-36082.rs
  • issue-36116.rs
  • issue-36163.rs
  • issue-36299.rs
  • issue-36379.rs
  • issue-36617.rs
  • issue-36638.rs
  • issue-3668-2.rs
  • issue-3668.rs
  • issue-36708.rs
  • issue-3680.rs
  • issue-36839.rs
  • issue-36881.rs
  • issue-3702-2.rs
  • issue-37026.rs
  • issue-37051.rs
  • issue-3707.rs
  • issue-37131.rs
  • issue-37323.rs
  • issue-37366.rs
  • issue-37510.rs
  • issue-37515.rs
  • issue-37534.rs
  • issue-37550.rs
  • issue-37576.rs
  • issue-3763.rs
  • issue-37665.rs
  • issue-3779.rs
  • issue-37884.rs
  • issue-38160.rs
  • issue-3820.rs
  • issue-38293.rs
  • issue-38381.rs
  • issue-38404.rs
  • issue-38412.rs
  • issue-38458.rs
  • issue-38604.rs
  • issue-38868.rs
  • issue-38919.rs
  • issue-38954.rs
  • issue-39122.rs
  • issue-39211.rs
  • issue-39362.rs
  • issue-39388.rs
  • issue-39404.rs
  • issue-39559-2.rs
  • issue-39559.rs
  • issue-39616.rs
  • issue-3973.rs
  • issue-3993.rs
  • issue-39970.rs
  • issue-39974.rs
  • issue-40000.rs
  • issue-40288-2.rs
  • issue-40288.rs
  • issue-40350.rs
  • issue-40510-1.rs
  • issue-40510-2.rs
  • issue-40510-3.rs
  • issue-40510-4.rs
  • issue-40610.rs
  • issue-40749.rs
  • issue-40845.rs
  • issue-40861.rs
  • issue-41139.rs
  • issue-41229-ref-str.rs
  • issue-41255.rs
  • issue-41394.rs
  • issue-41549.rs
  • issue-41726.rs
  • issue-41742.rs
  • issue-41776.rs
  • issue-41998.rs
  • issue-4201.rs
  • issue-42312.rs
  • issue-4265.rs
  • issue-42755.rs
  • issue-42796.rs
  • issue-42880.rs
  • issue-43162.rs
  • issue-4321.rs
  • issue-43250.rs
  • issue-4335.rs
  • issue-43424.rs
  • issue-43431.rs
  • issue-4366-2.rs
  • issue-4366.rs
  • issue-43733-2.rs
  • issue-43733.rs
  • issue-43784-associated-type.rs
  • issue-43784-supertrait.rs
  • issue-44021.rs
  • issue-44373.rs
  • issue-4517.rs
  • issue-4736.rs
  • issue-4935.rs
  • issue-4968.rs
  • issue-4972.rs
  • issue-5062.rs
  • issue-5067.rs
  • issue-5099.rs
  • issue-5100.rs
  • issue-5153.rs
  • issue-5216.rs
  • issue-5239-1.rs
  • issue-5358-1.rs
  • issue-5439.rs
  • issue-5500-1.rs
  • issue-5844.rs
  • issue-5883.rs
  • issue-5927.rs
  • issue-5997-enum.rs
  • issue-5997-struct.rs
  • issue-6458-2.rs
  • issue-6458-3.rs
  • issue-6458-4.rs
  • issue-6458.rs
  • issue-6596-1.rs
  • issue-6596-2.rs
  • issue-6642.rs
  • issue-6738.rs
  • issue-6801.rs
  • issue-6804.rs
  • issue-6936.rs
  • issue-6991.rs
  • issue-7013.rs
  • issue-7044.rs
  • issue-7061.rs
  • issue-7092.rs
  • issue-7246.rs
  • issue-7364.rs
  • issue-7573.rs
  • issue-7607-1.rs
  • issue-7813.rs
  • issue-7867.rs
  • issue-7950.rs
  • issue-7970a.rs
  • issue-7970b.rs
  • issue-8153.rs
  • issue-8208.rs
  • issue-8460-const.rs
  • issue-8640.rs
  • issue-8727.rs
  • issue-8761.rs
  • issue-8767.rs
  • issue-9575.rs
  • issue-9725.rs
  • issue-9814.rs
  • issue-pr29383.rs
  • issue32829.rs
  • keyword-false-as-identifier.rs
  • keyword-self-as-identifier.rs
  • keyword-super-as-identifier.rs
  • keyword-super.rs
  • keyword-true-as-identifier.rs
  • kindck-copy.rs
  • kindck-impl-type-params-2.rs
  • kindck-impl-type-params.rs
  • kindck-inherited-copy-bound.rs
  • kindck-nonsendable-1.rs
  • kindck-send-object.rs
  • kindck-send-object1.rs
  • kindck-send-object2.rs
  • kindck-send-owned.rs
  • kindck-send-unsafe.rs
  • kindck-send-unsafe.rs~rust-lang_master
  • label-static.rs
  • label-underscore.rs
  • lang-item-missing.rs
  • lexical-scopes.rs
  • lifetime-bound-will-change-warning.rs
  • lifetime-elision-return-type-requires-explicit-lifetime.rs
  • link-cfg-gated.rs
  • linkage1.rs
  • linkage2.rs
  • linkage3.rs
  • linkage4.rs
  • lint-attr-non-item-node.rs
  • lint-change-warnings.rs
  • lint-ctypes-enum.rs
  • lint-ctypes.rs
  • lint-dead-code-1.rs
  • lint-dead-code-2.rs
  • lint-dead-code-3.rs
  • lint-dead-code-4.rs
  • lint-dead-code-5.rs
  • lint-dead-code-type-alias.rs
  • lint-dead-code-variant.rs
  • lint-directives-on-use-items-issue-10534.rs
  • lint-exceeding-bitshifts.rs
  • lint-forbid-attr.rs
  • lint-forbid-cmdline.rs
  • lint-impl-fn.rs
  • lint-malformed.rs
  • lint-misplaced-attr.rs
  • lint-missing-copy-implementations.rs
  • lint-missing-doc.rs
  • lint-non-camel-case-types.rs
  • lint-non-snake-case-crate-2.rs
  • lint-non-snake-case-crate.rs
  • lint-non-snake-case-functions.rs
  • lint-non-snake-case-lifetimes.rs
  • lint-non-snake-case-modules.rs
  • lint-non-uppercase-statics.rs
  • lint-obsolete-attr.rs
  • lint-output-format-2.rs
  • lint-output-format.rs
  • lint-owned-heap-memory.rs
  • lint-qualification.rs
  • lint-removed-allow.rs
  • lint-removed-cmdline.rs
  • lint-removed.rs
  • lint-renamed-allow.rs
  • lint-renamed-cmdline.rs
  • lint-renamed.rs
  • lint-shorthand-field.rs
  • lint-stability-2.rs
  • lint-stability-deprecated.rs
  • lint-stability-fields-deprecated.rs
  • lint-stability-fields.rs
  • lint-stability.rs
  • lint-stability2.rs
  • lint-stability3.rs
  • lint-type-limits.rs
  • lint-type-limits2.rs
  • lint-type-limits3.rs
  • lint-type-overflow.rs
  • lint-type-overflow2.rs
  • lint-unconditional-recursion.rs
  • lint-unexported-no-mangle.rs
  • lint-unknown-attr.rs
  • lint-unknown-feature-default.rs
  • lint-unknown-feature.rs
  • lint-unknown-lint-cmdline.rs
  • lint-unknown-lint.rs
  • lint-unnecessary-import-braces.rs
  • lint-unnecessary-parens.rs
  • lint-unsafe-code.rs
  • lint-unused-extern-crate.rs
  • lint-unused-imports.rs
  • lint-unused-mut-self.rs
  • lint-unused-mut-variables.rs
  • lint-uppercase-variables.rs
  • liveness-assign-imm-local-in-loop.rs
  • liveness-assign-imm-local-in-op-eq.rs
  • liveness-assign-imm-local-with-init.rs
  • liveness-closure-require-ret.rs
  • liveness-dead.rs
  • liveness-forgot-ret.rs
  • liveness-issue-2163.rs
  • liveness-missing-ret2.rs
  • liveness-move-call-arg.rs
  • liveness-move-in-loop.rs
  • liveness-move-in-while.rs
  • liveness-return-last-stmt-semi.rs
  • liveness-unused.rs
  • liveness-use-after-move.rs
  • liveness-use-after-send.rs
  • log-syntax-gate.rs
  • log-syntax-gate2.rs
  • loop-break-value.rs
  • loop-labeled-break-value.rs
  • loop-proper-liveness.rs
  • loop-properly-diverging-2.rs
  • loops-reject-duplicate-labels-2.rs
  • loops-reject-duplicate-labels.rs
  • loops-reject-labels-shadowing-lifetimes.rs
  • loops-reject-lifetime-shadowing-label.rs
  • lub-if.rs
  • lub-match.rs
  • macro-attribute.rs
  • macro-context.rs
  • macro-crate-nonterminal-non-root.rs
  • macro-error.rs
  • macro-expanded-include
  • macro-expansion-tests.rs
  • macro-follow.rs
  • macro-followed-by-seq-bad.rs
  • macro-inner-attributes.rs
  • macro-input-future-proofing.rs
  • macro-invalid-fragment-spec.rs
  • macro-local-data-key-priv.rs
  • macro-match-nonterminal.rs
  • macro-missing-delimiters.rs
  • macro-missing-fragment.rs
  • macro-no-implicit-reexport.rs
  • macro-outer-attributes.rs
  • macro-parameter-span.rs
  • macro-reexport-malformed-1.rs
  • macro-reexport-malformed-2.rs
  • macro-reexport-malformed-3.rs
  • macro-reexport-not-locally-visible.rs
  • macro-reexport-undef.rs
  • macro-shadowing.rs
  • macro-stmt-matchers.rs
  • macro-tt-matchers.rs
  • macro-use-bad-args-1.rs
  • macro-use-bad-args-2.rs
  • macro-use-scope.rs
  • macro-use-undef.rs
  • macro-use-wrong-name.rs
  • macro-with-seps-err-msg.rs
  • macros-nonfatal-errors.rs
  • main-wrong-location.rs
  • main-wrong-type-2.rs
  • main-wrong-type.rs
  • malformed-derive-entry.rs
  • malformed-plugin-1.rs
  • malformed-plugin-2.rs
  • malformed-plugin-3.rs
  • malformed_macro_lhs.rs
  • manual-link-bad-form.rs
  • manual-link-bad-kind.rs
  • manual-link-bad-search-path.rs
  • manual-link-framework.rs
  • map-types.rs
  • match-argm-statics-2.rs
  • match-arm-statics.rs
  • match-byte-array-patterns-2.rs
  • match-byte-array-patterns.rs
  • match-ill-type2.rs
  • match-join.rs
  • match-no-arms-unreachable-after.rs
  • match-non-exhaustive.rs
  • match-pattern-field-mismatch-2.rs
  • match-pattern-field-mismatch.rs
  • match-privately-empty.rs
  • match-range-fail-2.rs
  • match-range-fail-dominate.rs
  • match-range-fail.rs
  • match-ref-ice.rs
  • match-ref-mut-invariance.rs
  • match-ref-mut-let-invariance.rs
  • match-slice-patterns.rs
  • match-static-const-lc.rs
  • match-struct.rs
  • match-tag-nullary.rs
  • match-tag-unary.rs
  • match-unreachable-warning-with-diverging-discrim.rs
  • match-unresolved-one-arm.rs
  • match-vec-fixed.rs
  • match-vec-mismatch-2.rs
  • match-vec-mismatch.rs
  • match-vec-unreachable.rs
  • maybe-bounds-where-cpass.rs
  • maybe-bounds-where.rs
  • maybe-bounds.rs
  • meta-expected-error-correct-rev.rs
  • meta-expected-error-wrong-rev.rs
  • method-ambig-one-trait-unknown-int-type.rs
  • method-ambig-two-traits-cross-crate.rs
  • method-ambig-two-traits-from-bounds.rs
  • method-ambig-two-traits-with-default-method.rs
  • method-call-err-msg.rs
  • method-call-lifetime-args-lint.rs
  • method-call-lifetime-args-subst-index.rs
  • method-call-lifetime-args-unresolved.rs
  • method-call-lifetime-args.rs
  • method-call-type-binding.rs
  • method-macro-backtrace.rs
  • method-missing-call.rs
  • method-path-in-pattern.rs
  • method-resolvable-path-in-pattern.rs
  • method-self-arg-1.rs
  • method-self-arg-2.rs
  • minus-string.rs
  • mir-dataflow
  • mir-unpretty.rs
  • missing-block-hint.rs
  • missing-derivable-attr.rs
  • missing-macro-use.rs
  • missing-main.rs
  • missing-return.rs
  • missing-semicolon-warning.rs
  • missing-stability.rs
  • missing_debug_impls.rs
  • mod_file_aux.rs
  • mod_file_correct_spans.rs
  • mod_file_disambig.rs
  • mod_file_disambig_aux
  • mod_file_disambig_aux.rs
  • module-macro_use-arguments.rs
  • move-in-guard-1.rs
  • move-in-guard-2.rs
  • move-into-dead-array-1.rs
  • move-into-dead-array-2.rs
  • move-out-of-array-1.rs
  • move-out-of-slice-1.rs
  • move-out-of-tuple-field.rs
  • moves-based-on-type-access-to-field.rs
  • moves-based-on-type-block-bad.rs
  • moves-based-on-type-capture-clause-bad.rs
  • moves-based-on-type-cyclic-types-issue-4821.rs
  • moves-based-on-type-distribute-copy-over-paren.rs
  • moves-based-on-type-exprs.rs
  • moves-based-on-type-match-bindings.rs
  • moves-based-on-type-move-out-of-closure-env-issue-1965.rs
  • moves-based-on-type-no-recursive-stack-closure.rs
  • moves-based-on-type-tuple.rs
  • moves-sru-moved-field.rs
  • multiple-main-2.rs
  • multiple-main-3.rs
  • multiple-plugin-registrars.rs
  • mut-cant-alias.rs
  • mut-cross-borrowing.rs
  • mut-pattern-internal-mutability.rs
  • mut-pattern-mismatched.rs
  • mut-suggestion.rs
  • mutable-class-fields-2.rs
  • mutable-class-fields.rs
  • mutable-enum-indirect.rs
  • mutexguard-sync.rs
  • name-clash-nullary.rs
  • namespace-mix.rs
  • namespaced-enum-glob-import-no-impls-xcrate.rs
  • namespaced-enum-glob-import-no-impls.rs
  • nested-cfg-attrs.rs
  • nested-ty-params.rs
  • never-assign-dead-code.rs
  • never-assign-wrong-type.rs
  • never-disabled.rs
  • no-capture-arc.rs
  • no-core-gated.rs
  • no-implicit-prelude-nested.rs
  • no-implicit-prelude.rs
  • no-link.rs
  • no-patterns-in-args-2.rs
  • no-patterns-in-args.rs
  • no-reuse-move-arc.rs
  • no-send-res-ports.rs
  • no-std-inject.rs
  • no-type-for-node-ice.rs
  • no-warn-on-field-replace-issue-34101.rs
  • no_crate_type.rs
  • no_owned_box_lang_item.rs
  • no_send-enum.rs
  • no_send-rc.rs
  • no_send-struct.rs
  • no_share-enum.rs
  • no_share-struct.rs
  • noexporttypeexe.rs
  • nolink-with-link-args.rs
  • non-constant-expr-for-arr-len.rs
  • non-constant-in-const-path.rs
  • non-copyable-void.rs
  • non-exhaustive-match-nested.rs
  • non-exhaustive-match.rs
  • non-exhaustive-pattern-witness.rs
  • non-interger-atomic.rs
  • noncopyable-class.rs
  • nonscalar-cast.rs
  • not-clone-closure.rs
  • not-copy-closure.rs
  • not-enough-arguments.rs
  • not-panic-safe-2.rs
  • not-panic-safe-3.rs
  • not-panic-safe-4.rs
  • not-panic-safe-5.rs
  • not-panic-safe-6.rs
  • not-panic-safe.rs
  • not-sync.rs
  • not-utf8.bin
  • not-utf8.rs
  • numeric-fields.rs
  • object-does-not-impl-trait.rs
  • object-lifetime-default-ambiguous.rs
  • object-lifetime-default-elision.rs
  • object-lifetime-default-from-box-error.rs
  • object-lifetime-default-from-rptr-box-error.rs
  • object-lifetime-default-from-rptr-struct-error.rs
  • object-lifetime-default-mybox.rs
  • object-lifetime-default.rs
  • object-pointer-types.rs
  • object-safety-associated-consts.rs
  • object-safety-by-value-self-use.rs
  • object-safety-by-value-self.rs
  • object-safety-generics.rs
  • object-safety-issue-22040.rs
  • object-safety-mentions-Self.rs
  • object-safety-no-static.rs
  • object-safety-phantom-fn.rs
  • object-safety-sized-2.rs
  • object-safety-sized.rs
  • object-safety-supertrait-mentions-Self.rs
  • occurs-check-2.rs
  • occurs-check-3.rs
  • occurs-check.rs
  • old-suffixes-are-really-forbidden.rs
  • once-cant-call-twice-on-heap.rs
  • opt-in-copy.rs
  • or-patter-mismatch.rs
  • orphan-check-diagnostics.rs
  • osx-frameworks.rs
  • out-of-order-shadowing.rs
  • output-type-mismatch.rs
  • overlap-marker-trait.rs
  • overloaded-calls-nontuple.rs
  • packed-struct-generic-transmute.rs
  • packed-struct-transmute.rs
  • panic-runtime
  • paren-span.rs
  • parse-error-correct.rs
  • parser-recovery-1.rs
  • parser-recovery-2.rs
  • partialeq_help.rs
  • pat-shadow-in-nested-binding.rs
  • pat-slice-old-style.rs
  • pat-tuple-bad-type.rs
  • pat-tuple-overfield.rs
  • patkind-litrange-no-expr.rs
  • pattern-bindings-after-at.rs
  • pattern-error-continue.rs
  • pattern-ident-path-generics.rs
  • pattern-macro-hygiene.rs
  • pattern-tyvar-2.rs
  • pattern-tyvar.rs
  • phantom-oibit.rs
  • placement-expr-unsafe.rs
  • placement-expr-unstable.rs
  • platform-intrinsic-params.rs
  • pptypedef.rs
  • prim-with-args.rs
  • priv-in-bad-locations.rs
  • privacy
  • privacy-in-paths.rs
  • privacy-ns1.rs
  • privacy-ns2.rs
  • privacy-sanity.rs
  • privacy-ufcs.rs
  • privacy1.rs
  • privacy2.rs
  • privacy3.rs
  • privacy4.rs
  • privacy5.rs
  • private-impl-method.rs
  • private-in-public-lint.rs
  • private-in-public-warn.rs
  • private-in-public.rs
  • private-inferred-type-1.rs
  • private-inferred-type-2.rs
  • private-inferred-type-3.rs
  • private-inferred-type.rs
  • private-item-simple.rs
  • private-method-cross-crate.rs
  • private-method-inherited.rs
  • private-method.rs
  • private-struct-field-cross-crate.rs
  • private-struct-field-ctor.rs
  • private-struct-field-pattern.rs
  • private-struct-field.rs
  • private-type-in-interface.rs
  • private-variant-reexport.rs
  • ptr-coercion.rs
  • pub-reexport-priv-extern-crate.rs
  • qualified-path-params-2.rs
  • qualified-path-params.rs
  • question-mark-type-infer.rs
  • range-1.rs
  • range_inclusive_gate.rs
  • range_traits-1.rs
  • range_traits-2.rs
  • range_traits-3.rs
  • range_traits-4.rs
  • range_traits-5.rs
  • range_traits-6.rs
  • range_traits-7.rs
  • recursion.rs
  • recursive-enum.rs
  • recursive-reexports.rs
  • recursive-types-are-not-uninhabited.rs
  • ref-suggestion.rs
  • refutable-pattern-errors.rs
  • refutable-pattern-in-fn-arg.rs
  • region-borrow-params-issue-29793-big.rs
  • region-borrow-params-issue-29793-small.rs
  • region-bound-extra-bound-in-inherent-impl.rs
  • region-bound-on-closure-outlives-call.rs
  • region-bound-same-bounds-in-trait-and-impl.rs
  • region-bounds-on-objects-and-type-parameters.rs
  • region-invariant-static-error-reporting.rs
  • region-lifetime-bounds-on-fns-where-clause.rs
  • region-multiple-lifetime-bounds-on-fns-where-clause.rs
  • region-object-lifetime-1.rs
  • region-object-lifetime-2.rs
  • region-object-lifetime-3.rs
  • region-object-lifetime-4.rs
  • region-object-lifetime-5.rs
  • region-object-lifetime-in-coercion.rs
  • regions-addr-of-arg.rs
  • regions-addr-of-self.rs
  • regions-addr-of-upvar-self.rs
  • regions-adjusted-lvalue-op.rs
  • regions-assoc-type-in-supertrait-outlives-container.rs
  • regions-assoc-type-region-bound-in-trait-not-met.rs
  • regions-assoc-type-static-bound-in-trait-not-met.rs
  • regions-bound-missing-bound-in-impl.rs
  • regions-bounded-by-trait-requiring-static.rs
  • regions-bounded-method-type-parameters-cross-crate.rs
  • regions-bounded-method-type-parameters-trait-bound.rs
  • regions-bounded-method-type-parameters.rs
  • regions-bounds.rs
  • regions-close-associated-type-into-object.rs
  • regions-close-object-into-object-1.rs
  • regions-close-object-into-object-2.rs
  • regions-close-object-into-object-3.rs
  • regions-close-object-into-object-4.rs
  • regions-close-object-into-object-5.rs
  • regions-close-over-type-parameter-1.rs
  • regions-close-over-type-parameter-multiple.rs
  • regions-close-param-into-object.rs
  • regions-creating-enums.rs
  • regions-creating-enums3.rs
  • regions-creating-enums4.rs
  • regions-early-bound-error-method.rs
  • regions-early-bound-error.rs
  • regions-enum-not-wf.rs
  • regions-escape-bound-fn-2.rs
  • regions-escape-bound-fn.rs
  • regions-escape-method.rs
  • regions-escape-unboxed-closure.rs
  • regions-escape-via-trait-or-not.rs
  • regions-fn-subtyping-return-static.rs
  • regions-free-region-ordering-callee-4.rs
  • regions-free-region-ordering-callee.rs
  • regions-free-region-ordering-caller.rs
  • regions-free-region-ordering-caller1.rs
  • regions-free-region-ordering-incorrect.rs
  • regions-glb-free-free.rs
  • regions-implied-bounds-projection-gap-1.rs
  • regions-implied-bounds-projection-gap-2.rs
  • regions-implied-bounds-projection-gap-3.rs
  • regions-implied-bounds-projection-gap-4.rs
  • regions-implied-bounds-projection-gap-hr-1.rs
  • regions-in-enums-anon.rs
  • regions-in-enums.rs
  • regions-in-structs-anon.rs
  • regions-in-structs.rs
  • regions-infer-at-fn-not-param.rs
  • regions-infer-borrow-scope-too-big.rs
  • regions-infer-bound-from-trait-self.rs
  • regions-infer-bound-from-trait.rs
  • regions-infer-call-3.rs
  • regions-infer-contravariance-due-to-decl.rs
  • regions-infer-covariance-due-to-decl.rs
  • regions-infer-invariance-due-to-decl.rs
  • regions-infer-invariance-due-to-mutability-3.rs
  • regions-infer-invariance-due-to-mutability-4.rs
  • regions-infer-not-param.rs
  • regions-infer-paramd-indirect.rs
  • regions-infer-proc-static-upvar.rs
  • regions-lifetime-bounds-on-fns.rs
  • regions-lifetime-of-struct-or-enum-variant.rs
  • regions-name-duplicated.rs
  • regions-name-static.rs
  • regions-name-undeclared.rs
  • regions-nested-fns-2.rs
  • regions-nested-fns.rs
  • regions-outlives-nominal-type-enum-region-rev.rs
  • regions-outlives-nominal-type-enum-region.rs
  • regions-outlives-nominal-type-enum-type-rev.rs
  • regions-outlives-nominal-type-enum-type.rs
  • regions-outlives-nominal-type-struct-region-rev.rs
  • regions-outlives-nominal-type-struct-region.rs
  • regions-outlives-nominal-type-struct-type-rev.rs
  • regions-outlives-nominal-type-struct-type.rs
  • regions-outlives-projection-container-hrtb.rs
  • regions-outlives-projection-container-wc.rs
  • regions-outlives-projection-container.rs
  • regions-outlives-projection-hrtype.rs
  • regions-outlives-projection-trait-def.rs
  • regions-outlives-scalar.rs
  • regions-pattern-typing-issue-19552.rs
  • regions-pattern-typing-issue-19997.rs
  • regions-proc-bound-capture.rs
  • regions-reborrow-from-shorter-mut-ref-mut-ref.rs
  • regions-reborrow-from-shorter-mut-ref.rs
  • regions-ref-in-fn-arg.rs
  • regions-ret-borrowed-1.rs
  • regions-ret-borrowed.rs
  • regions-ret.rs
  • regions-return-ref-to-upvar-issue-17403.rs
  • regions-return-stack-allocated-vec.rs
  • regions-static-bound.rs
  • regions-steal-closure.rs
  • regions-struct-not-wf.rs
  • regions-trait-1.rs
  • regions-trait-object-subtyping.rs
  • regions-trait-variance.rs
  • regions-undeclared.rs
  • regions-var-type-out-of-scope.rs
  • regions-variance-contravariant-use-covariant-in-second-position.rs
  • regions-variance-contravariant-use-covariant.rs
  • regions-variance-covariant-use-contravariant.rs
  • regions-variance-invariant-use-contravariant.rs
  • regions-variance-invariant-use-covariant.rs
  • regions-wf-trait-object.rs
  • reject-specialized-drops-8142.rs
  • repeat-to-run-dtor-twice.rs
  • repeat_count.rs
  • repr-align.rs
  • repr-packed-contains-align.rs
  • required-lang-item.rs
  • reserved-attr-on-macro.rs
  • reserved-become.rs
  • resolve-bad-import-prefix.rs
  • resolve-bad-visibility.rs
  • resolve-conflict-extern-crate-vs-extern-crate.rs
  • resolve-conflict-import-vs-extern-crate.rs
  • resolve-conflict-import-vs-import.rs
  • resolve-conflict-item-vs-extern-crate.rs
  • resolve-conflict-item-vs-import.rs
  • resolve-conflict-type-vs-import.rs
  • resolve-inconsistent-binding-mode.rs
  • resolve-inconsistent-names.rs
  • resolve-label.rs
  • resolve-primitive-fallback.rs
  • resolve-self-in-impl-2.rs
  • resolve-self-in-impl.rs
  • resolve-type-param-in-item-in-trait.rs
  • resolve-unknown-trait.rs
  • resolve-variant-assoc-item.rs
  • resolve_self_super_hint.rs
  • ret-non-nil.rs
  • retslot-cast.rs
  • return-from-diverging.rs
  • return-unit-from-diverging.rs
  • rfc1445
  • rfc1623.rs
  • rfc1717
  • rmeta-lib-pass.rs
  • rmeta-pass.rs
  • rmeta-priv-warn.rs
  • rmeta.rs
  • rmeta_lib.rs
  • rmeta_meta_main.rs
  • rust-unstable-column-gated.rs
  • rustc-error.rs
  • safe-extern-statics-mut.rs
  • safe-extern-statics.rs
  • self-impl.rs
  • self-infer.rs
  • self-vs-path-ambiguity.rs
  • self_type_keyword-2.rs
  • self_type_keyword.rs
  • seq-args.rs
  • shadowed-lifetime.rs
  • shadowed-trait-methods.rs
  • shadowed-use-visibility.rs
  • shadowing-in-the-same-pattern.rs
  • shift-various-bad-types.rs
  • simd-intrinsic-declaration-type.rs
  • simd-intrinsic-generic-arithmetic.rs
  • simd-intrinsic-generic-cast.rs
  • simd-intrinsic-generic-comparison.rs
  • simd-intrinsic-generic-elements.rs
  • simd-intrinsic-single-nominal-type.rs
  • simd-type-generic-monomorphisation.rs
  • simd-type.rs
  • single-derive-attr.rs
  • single-primitive-inherent-impl.rs
  • sized-cycle-note.rs
  • slice-2.rs
  • slice-mut-2.rs
  • slice-mut.rs
  • slightly-nice-generic-literal-messages.rs
  • specialization
  • stability-attribute-issue-43027.rs
  • stability-attribute-issue.rs
  • stability-attribute-non-staged-force-unstable.rs
  • stability-attribute-non-staged.rs
  • stability-attribute-sanity-2.rs
  • stability-attribute-sanity-3.rs
  • stability-attribute-sanity.rs
  • stable-features.rs
  • static-array-across-crate.rs
  • static-drop-scope.rs
  • static-items-cant-move.rs
  • static-lifetime-bound.rs
  • static-method-privacy.rs
  • static-mut-bad-types.rs
  • static-mut-foreign-requires-unsafe.rs
  • static-mut-not-constant.rs
  • static-mut-not-pat.rs
  • static-mut-requires-unsafe.rs
  • static-priv-by-default.rs
  • static-priv-by-default2.rs
  • static-reference-to-fn-1.rs
  • static-reference-to-fn-2.rs
  • static-region-bound.rs
  • static-vec-repeat-not-constant.rs
  • staticness-mismatch.rs
  • std-uncopyable-atomics.rs
  • stmt_expr_attrs_no_feature.rs
  • str-concat-on-double-ref.rs
  • str-idx.rs
  • str-mut-idx.rs
  • struct-base-wrong-type-2.rs
  • struct-base-wrong-type.rs
  • struct-field-cfg.rs
  • struct-field-privacy.rs
  • struct-fields-decl-dupe.rs
  • struct-fields-dupe.rs
  • struct-fields-hints-no-dupe.rs
  • struct-fields-hints.rs
  • struct-fields-missing.rs
  • struct-fields-shorthand-unresolved.rs
  • struct-fields-shorthand.rs
  • struct-fields-too-many.rs
  • struct-fields-typo.rs
  • struct-like-enum-nonexhaustive.rs
  • struct-pat-derived-error.rs
  • struct-path-alias-bounds.rs
  • struct-path-associated-type.rs
  • struct-path-self-type-mismatch.rs
  • struct-path-self.rs
  • struct-pattern-match-useless.rs
  • struct-variant-privacy-xc.rs
  • struct-variant-privacy.rs
  • structure-constructor-type-mismatch.rs
  • substs-ppaux.rs
  • suffixed-literal-meta.rs
  • suggest-private-fields.rs
  • super-at-top-level.rs
  • suppressed-error.rs
  • svh-change-lit.rs
  • svh-change-significant-cfg.rs
  • svh-change-trait-bound.rs
  • svh-change-type-arg.rs
  • svh-change-type-ret.rs
  • svh-change-type-static.rs
  • svh-use-trait.rs
  • symbol-names
  • syntax-extension-minor.rs
  • syntax-trait-polarity-feature-gate.rs
  • syntaxt-default-trait-impls.rs
  • tag-that-dare-not-speak-its-name.rs
  • tag-type-args.rs
  • tag-variant-cast-non-nullary.rs
  • tag-variant-disr-dup.rs
  • tail-typeck.rs
  • task-rng-isnt-sendable.rs
  • terr-in-field.rs
  • terr-sorts.rs
  • test-cfg.rs
  • test-warns-dead-code.rs
  • thread-local-in-ctfe.rs
  • trace_macros-format.rs
  • trace_macros-gate.rs
  • trait-as-struct-constructor.rs
  • trait-bounds-not-on-bare-trait.rs
  • trait-bounds-not-on-struct.rs
  • trait-bounds-on-structs-and-enums-in-fns.rs
  • trait-bounds-on-structs-and-enums-in-impls.rs
  • trait-bounds-on-structs-and-enums-locals.rs
  • trait-bounds-on-structs-and-enums-static.rs
  • trait-bounds-on-structs-and-enums-xc.rs
  • trait-bounds-on-structs-and-enums-xc1.rs
  • trait-bounds-on-structs-and-enums.rs
  • trait-bounds-sugar.rs
  • trait-coercion-generic-bad.rs
  • trait-coercion-generic-regions.rs
  • trait-duplicate-methods.rs
  • trait-impl-1.rs
  • trait-impl-can-not-have-untraitful-items.rs
  • trait-impl-different-num-params.rs
  • trait-impl-for-module.rs
  • trait-impl-method-mismatch.rs
  • trait-impl-of-supertrait-has-wrong-lifetime-parameters.rs
  • trait-item-privacy.rs
  • trait-matching-lifetimes.rs
  • trait-object-macro-matcher.rs
  • trait-object-safety.rs
  • trait-object-vs-lifetime-2.rs
  • trait-object-vs-lifetime.rs
  • trait-or-new-type-instead.rs
  • trait-privacy.rs
  • trait-resolution-in-overloaded-op.rs
  • trait-safety-fn-body.rs
  • trait-safety-inherent-impl.rs
  • trait-safety-trait-impl-cc.rs
  • trait-safety-trait-impl.rs
  • trait-static-method-generic-inference.rs
  • trait-suggest-where-clause.rs
  • trait-test-2.rs
  • trait-test.rs
  • traits-assoc-type-in-supertrait-bad.rs
  • traits-inductive-overflow-simultaneous.rs
  • traits-inductive-overflow-supertrait-oibit.rs
  • traits-inductive-overflow-supertrait.rs
  • traits-inductive-overflow-two-traits.rs
  • traits-issue-23003-overflow.rs
  • traits-multidispatch-bad.rs
  • traits-multidispatch-convert-ambig-dest.rs
  • traits-negative-impls.rs
  • traits-repeated-supertrait-ambig.rs
  • transmute-different-sizes.rs
  • transmute-fat-pointers.rs
  • transmute-impl.rs
  • transmute-imut-to-mut.rs
  • trivial_casts.rs
  • tuple-arity-mismatch.rs
  • tuple-index-not-tuple.rs
  • tuple-index-out-of-bounds.rs
  • tuple-struct-nonexhaustive.rs
  • tutorial-suffix-inference-test.rs
  • type-arg-out-of-scope.rs
  • type-ascription-feature-gate.rs
  • type-ascription-precedence.rs
  • type-ascription-soundness.rs
  • type-mismatch-multiple.rs
  • type-mismatch-same-crate-name.rs
  • type-parameter-defaults-referencing-Self-ppaux.rs
  • type-parameter-defaults-referencing-Self.rs
  • type-parameter-invalid-lint.rs
  • type-parameter-names.rs
  • type-params-in-different-spaces-1.rs
  • type-params-in-different-spaces-2.rs
  • type-params-in-different-spaces-3.rs
  • type-recursive.rs
  • type-shadow.rs
  • type_length_limit.rs
  • typeck-auto-trait-no-supertraits-2.rs
  • typeck-auto-trait-no-supertraits.rs
  • typeck-auto-trait-no-typeparams.rs
  • typeck-builtin-bound-type-parameters.rs
  • typeck-cast-pointer-to-float.rs
  • typeck-default-trait-impl-assoc-type.rs
  • typeck-default-trait-impl-constituent-types-2.rs
  • typeck-default-trait-impl-constituent-types.rs
  • typeck-default-trait-impl-cross-crate-coherence.rs
  • typeck-default-trait-impl-negation-send.rs
  • typeck-default-trait-impl-negation-sync.rs
  • typeck-default-trait-impl-negation.rs
  • typeck-default-trait-impl-outside-crate.rs
  • typeck-default-trait-impl-precedence.rs
  • typeck-default-trait-impl-send-param.rs
  • typeck-negative-impls-builtin.rs
  • typeck-unsafe-always-share.rs
  • typeck_type_placeholder_item.rs
  • typeck_type_placeholder_lifetime_1.rs
  • typeck_type_placeholder_lifetime_2.rs
  • typeck_type_placeholder_mismatch.rs
  • ufcs-explicit-self-bad.rs
  • ufcs-partially-resolved.rs
  • ufcs-qpath-missing-params.rs
  • ufcs-qpath-self-mismatch.rs
  • unadjusted-unstable.rs
  • unboxed-closer-non-implicit-copyable.rs
  • unboxed-closure-feature-gate.rs
  • unboxed-closure-illegal-move.rs
  • unboxed-closure-immutable-capture.rs
  • unboxed-closure-region.rs
  • unboxed-closure-sugar-default.rs
  • unboxed-closure-sugar-equiv.rs
  • unboxed-closure-sugar-lifetime-elision.rs
  • unboxed-closure-sugar-not-used-on-fn.rs
  • unboxed-closure-sugar-region.rs
  • unboxed-closure-sugar-used-on-struct-1.rs
  • unboxed-closure-sugar-used-on-struct-3.rs
  • unboxed-closure-sugar-used-on-struct.rs
  • unboxed-closure-sugar-wrong-number-number-type-parameters-1.rs
  • unboxed-closure-sugar-wrong-number-number-type-parameters-3.rs
  • unboxed-closure-sugar-wrong-number-number-type-parameters.rs
  • unboxed-closure-sugar-wrong-trait.rs
  • unboxed-closures-borrow-conflict.rs
  • unboxed-closures-failed-recursive-fn-1.rs
  • unboxed-closures-failed-recursive-fn-2.rs
  • unboxed-closures-fnmut-as-fn.rs
  • unboxed-closures-infer-argument-types-two-region-pointers.rs
  • unboxed-closures-infer-fnmut-calling-fnmut-no-mut.rs
  • unboxed-closures-infer-fnmut-missing-mut.rs
  • unboxed-closures-infer-fnmut-move-missing-mut.rs
  • unboxed-closures-infer-fnonce-call-twice.rs
  • unboxed-closures-infer-fnonce-move-call-twice.rs
  • unboxed-closures-mutate-upvar.rs
  • unboxed-closures-mutated-upvar-from-fn-closure.rs
  • unboxed-closures-recursive-fn-using-fn-mut.rs
  • unboxed-closures-static-call-wrong-trait.rs
  • unboxed-closures-type-mismatch.rs
  • unboxed-closures-unsafe-extern-fn.rs
  • unboxed-closures-wrong-abi.rs
  • unboxed-closures-wrong-arg-type-extern-fn.rs
  • unconstrained-none.rs
  • unconstrained-ref.rs
  • underscore-lifetime-binders.rs
  • underscore-lifetime-elison-mismatch.rs
  • uninhabited-enum-cast.rs
  • uninhabited-irrefutable.rs
  • uninhabited-matches-feature-gated.rs
  • uninhabited-patterns.rs
  • union
  • unique-object-noncopyable.rs
  • unique-pinned-nocopy.rs
  • unop-move-semantics.rs
  • unop-neg-bool.rs
  • unreachable-arm.rs
  • unreachable-code.rs
  • unreachable-in-call.rs
  • unreachable-loop-patterns.rs
  • unreachable-try-pattern.rs
  • unreachable-variant.rs
  • unresolved-extern-mod-suggestion.rs
  • unresolved-import-recovery.rs
  • unresolved-import.rs
  • unsafe-around-compiler-generated-unsafe.rs
  • unsafe-const-fn.rs
  • unsafe-fn-assign-deref-ptr.rs
  • unsafe-fn-autoderef.rs
  • unsafe-fn-called-from-safe.rs
  • unsafe-fn-deref-ptr.rs
  • unsafe-fn-used-as-value.rs
  • unsafe-subtyping.rs
  • unsafe-trait-impl.rs
  • unsized-bare-typaram.rs
  • unsized-enum.rs
  • unsized-enum2.rs
  • unsized-inherent-impl-self-type.rs
  • unsized-struct.rs
  • unsized-trait-impl-self-type.rs
  • unsized-trait-impl-trait-arg.rs
  • unsized3.rs
  • unsized5.rs
  • unsized6.rs
  • unsized7.rs
  • unspecified-self-in-trait-ref.rs
  • unsupported-cast.rs
  • unused-attr.rs
  • unused-macro-rules.rs
  • unused-macro-with-bad-frag-spec.rs
  • unused-macro-with-follow-violation.rs
  • unused-macro.rs
  • unused-mut-warning-captured-var.rs
  • unused-result.rs
  • use-after-move-based-on-type.rs
  • use-after-move-implicity-coerced-object.rs
  • use-after-move-self-based-on-type.rs
  • use-after-move-self.rs
  • use-from-trait-xc.rs
  • use-from-trait.rs
  • use-keyword.rs
  • use-meta-mismatch.rs
  • use-mod-2.rs
  • use-mod-3.rs
  • use-mod-4.rs
  • use-mod.rs
  • use-paths-as-items.rs
  • use-self-type.rs
  • use-super-global-path.rs
  • useless-pub.rs
  • useless_comment.rs
  • user-defined-macro-rules.rs
  • utf8_idents.rs
  • variadic-ffi-2.rs
  • variadic-ffi-3.rs
  • variadic-ffi.rs
  • variance-associated-types.rs
  • variance-btree-invariant-types.rs
  • variance-cell-is-invariant.rs
  • variance-contravariant-arg-object.rs
  • variance-contravariant-arg-trait-match.rs
  • variance-contravariant-self-trait-match.rs
  • variance-covariant-arg-object.rs
  • variance-covariant-arg-trait-match.rs
  • variance-covariant-self-trait-match.rs
  • variance-invariant-arg-object.rs
  • variance-invariant-arg-trait-match.rs
  • variance-invariant-self-trait-match.rs
  • variance-issue-20533.rs
  • variance-object-types.rs
  • variance-regions-direct.rs
  • variance-regions-indirect.rs
  • variance-regions-unused-direct.rs
  • variance-regions-unused-indirect.rs
  • variance-trait-bounds.rs
  • variance-trait-matching.rs
  • variance-trait-object-bound.rs
  • variance-types-bounds.rs
  • variance-types.rs
  • variance-unused-region-param.rs
  • variance-unused-type-param.rs
  • variance-use-contravariant-struct-1.rs
  • variance-use-contravariant-struct-2.rs
  • variance-use-covariant-struct-1.rs
  • variance-use-covariant-struct-2.rs
  • variance-use-invariant-struct-1.rs
  • variant-namespacing.rs
  • variant-size-differences.rs
  • variant-used-as-type.rs
  • vec-macro-with-comma-only.rs
  • vec-mut-iter-borrow.rs
  • vec-res-add.rs
  • vector-cast-weirdness.rs
  • vector-no-ann.rs
  • vtable-res-trait-param.rs
  • walk-struct-literal-with.rs
  • warn-path-statement.rs
  • weak-lang-item.rs
  • wf-array-elem-sized.rs
  • wf-const-type.rs
  • wf-enum-bound.rs
  • wf-enum-fields-struct-variant.rs
  • wf-enum-fields.rs
  • wf-fn-where-clause.rs
  • wf-impl-associated-type-region.rs
  • wf-impl-associated-type-trait.rs
  • wf-in-fn-arg.rs
  • wf-in-fn-ret.rs
  • wf-in-fn-type-arg.rs
  • wf-in-fn-type-ret.rs
  • wf-in-fn-type-static.rs
  • wf-in-fn-where-clause.rs
  • wf-in-obj-type-static.rs
  • wf-in-obj-type-trait.rs
  • wf-inherent-impl-method-where-clause.rs
  • wf-inherent-impl-where-clause.rs
  • wf-misc-methods-issue-28609.rs
  • wf-object-safe.rs
  • wf-outlives-ty-in-fn-or-trait.rs
  • wf-static-method.rs
  • wf-static-type.rs
  • wf-struct-bound.rs
  • wf-struct-field.rs
  • wf-trait-associated-type-bound.rs
  • wf-trait-associated-type-region.rs
  • wf-trait-associated-type-trait.rs
  • wf-trait-bound.rs
  • wf-trait-default-fn-arg.rs
  • wf-trait-default-fn-ret.rs
  • wf-trait-default-fn-where-clause.rs
  • wf-trait-fn-arg.rs
  • wf-trait-fn-ret.rs
  • wf-trait-fn-where-clause.rs
  • wf-trait-superbound.rs
  • where-clause-constraints-are-local-for-inherent-impl.rs
  • where-clause-constraints-are-local-for-trait-impl.rs
  • where-clause-method-substituion.rs
  • where-clauses-method-unsatisfied.rs
  • where-clauses-unsatisfied.rs
  • where-equality-constraints.rs
  • where-for-self-2.rs
  • where-for-self.rs
  • where-lifetime-resolution.rs
  • while-let.rs
  • while-type-error.rs
  • windows-subsystem-invalid.rs
  • writing-to-immutable-vec.rs
  • wrong-mul-method-signature.rs
  • wrong-ret-type.rs
  • xc-private-method.rs
  • xc-private-method2.rs
  • xcrate-private-by-default.rs
  • xcrate-unit-struct.rs
@estebank estebank added A-diagnostics Area: Messages for errors, warnings, and lints E-mentor Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion. WG-diagnostics Working group: Diagnostics E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. labels Sep 25, 2017
@Mark-Simulacrum
Copy link
Member

Has the relative performance of compile-fail vs. UI tests been evaluated? I worry that we'd be hurting our merge times if there's too much of a regression. I doubt it's anything serious, though, so no need to block this.

@Zoxc
Copy link
Contributor

Zoxc commented Sep 26, 2017

Why are we doing this when compile-fail are easier to use, more readable and maintainable?

@estebank
Copy link
Contributor Author

Has the relative performance of compile-fail vs. UI tests been evaluated?

I don't think anyone has (including me), but my gut feeling is that the difference isn't big enough to make a dent. I'll try to keep track of it though, as well as investigate any performance enhancements we might be able to make to the test suite itself.

Why are we doing this when compile-fail are easier to use, more readable and maintainable?

I could debate all three points:

  1. more maintainable: it's relative, as running the script will keep the output up to date with any change
  2. more readable: in isolation, they might be, but the diffs of ui tests are much easier and intuitive to track for reviewers and will also expose unintended consequences across the entire test suite
  3. easier to use: they are in a way, but I've encountered multiple cases of tests that were not actually being tested, as the line of output was a comment instead of an actual check. I've also seen cases of changes affecting unrelated existing test cases not being picked up as happening because the test case was ignoring the new notes, for example. The only place where inline tests are a clear winner in my opinion is when needing to have comments adding context to the compiler output.

Beyond those three points, we want to add support for the current inline tests to ui tests.

There is another underlying reason, witch I haven't stated so far: I want to be able to audit the compiler output in it's totality in order to find common places for improvement, to write down unifying guidelines and applying them to any inconsistent output. Having only ui tests makes doing this on a comprehensive way much easier.

@petrochenkov
Copy link
Contributor

petrochenkov commented Sep 26, 2017

I tried to convert everything once and encountered two issues to solve

  • UI tests don't support revisions
  • Some diagnostics are unstable because they depend e.g. on order of elements in HashMap.

Most of tests still can be converted though.

I think it's critical to implement and enable checking of //~ ERROR message in UI tests before mass-converting.
For many tests the whole point of the test is to ensure that some lines produce errors and other don't (specific message details are less important), UI test doesn't indicate any human-written expectations on the output, you can easily regenerate the .error file and miss a bug.

@GuillaumeGomez
Copy link
Member

It seems like a really strange idea...

@estebank
Copy link
Contributor Author

Most of tests still can be converted though.

I'm counting on that.

you can easily regenerate the .error file and miss a bug.

But it should be easier for reviewers to catch them when they occur, IMO.

It seems like a really strange idea...

How's so?

@TimNN TimNN added the C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. label Sep 27, 2017
@GuillaumeGomez
Copy link
Member

The goal of the compile-fail tests is different than the ui tests'. The first one is to ensure the expected error(s) come(s) out, even if the output changes whereas the second is to watch over the compiler output. That's why it seems strange to me that we're trying to merge the both of them.

@petrochenkov
Copy link
Contributor

@estebank

you can easily regenerate the .error file and miss a bug.

But it should be easier for reviewers to catch them when they occur, IMO.

It's very difficult to write new compile-fail style tests testing more than one error without support of //~ ERROR, I tried it. (A typical example is exhaustively testing some minor feature, e.g. https://github.com/rust-lang/rust/blob/master/src/test/compile-fail/trait-item-privacy.rs)
You have to look at the wall of text in the .stderr file and try to manually find lines corresponding to the original test file, it's very error-prone, you need inline //~ERROR annotations in the original file to have any kind of reliability.

@GuillaumeGomez
Copy link
Member

Which seems very complicated in case there are multiple lines for one error (help, notes, suggestions...).

@Zoxc
Copy link
Contributor

Zoxc commented Sep 29, 2017

Do we have a way to regenerate these tests on Windows? Also we need to document how to regenerate the tests somewhere discoverable, perhaps in the output of tests themselves? I'd also prefer just the diff of output be printed. These tests seem quite noisy.

@GuillaumeGomez
Copy link
Member

cc @pnkfelix @nikomatsakis (I precise again I'm against this change.)

@pnkfelix pnkfelix added the T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. label Sep 30, 2017
@pnkfelix
Copy link
Member

I think the compiler team should discuss: 1. whether we want to go in this direction, and 2. if we do want to go in this direction, what prerequisites need to be met (e.g., consider @petrochenkov 's comment that we should implement and enable checking of //~ ERROR message in UI tests before mass-converting).

@nikomatsakis
Copy link
Contributor

nikomatsakis commented Oct 10, 2017

My opinion:

  1. I'd still like to transition to ui tests.
    • They test the thing we really care about: the compiler's output.
    • They catch small bugs (e.g., spans that become off by one character, or weird artifacts in the compiler output) that would otherwise be invisible. Indeed, @petrochenkov's comment that the order in which we emit errors is not stable is a kind of example of this. This seems like undesirable behavior to me.
    • It is much easier to judge the impact of a PR on the error messages that users will see.
  2. We should extend the test runner for ui tests to validate //~ ERROR annotations.
    • I think we should do this first.
    • I also think it need not support the full range of NOTE etc crap-ola. That stuff is in the reference. The goal of //~ ERROR annotations should be allow the author to emphasize which cases are expected to error out and which ones are not, without having to "cross-reference" the stderr. (Basically what @petrochenkov was describing here.)
    • I would not make //~ ERROR annotations mandatory, however, since for many tests (those with a single error, etc), they don't seem to serve much purpose.
  3. We should also permit run-pass tests in the ui directory; I forget if we did this already yet, but I often want to group together "successful" and "failed" tests for a feature, and I hate having to spread them across directories right now.
  4. The point about not supporting revisions is interesting. Overall, I'm of mixed minds about the whole revision thing, but they are certainly useful for incremental testing. They are kind of a pain to setup though and they make running the test afterwards more awkward too.
  5. We should rewrite the script that updates reference files in Rust so it is portable. Easy-peezy. Maybe make it something like ./x.py update-reference-files

(I wish we had a lighterweight way to run the test runner, incidentally, without e.g. invoking it from ./x.py. But I digress.)

@Phlosioneer
Copy link
Contributor

Phlosioneer commented Oct 16, 2017

@nikomatsakis Where is the test runner for ui? I've looked in the bootstrap folder and I can't figure out the execution path when passing in the "test" argument. I'd like to help and contribute here, because it's labeled E-EASY; I'm not really familiar with the compiler but I want to learn.

Edit: Found the ui test runner and the compile-fail test runner. I'm going to do my best to understand what they're doing.

@Phlosioneer
Copy link
Contributor

Phlosioneer commented Oct 17, 2017

Alright, I've upgraded the test runner for ui to parse test commands.
That's broken about 85 tests that have either:

  • improper synax for test commands
  • slight text differences (e.g. adding a colon at the end)
  • shorthand (e.g. saying "moved" instead of "captured outer variable"
  • incomplete description of the test.

I'm going through and fixing each one right now. This might take some time.

@Phlosioneer
Copy link
Contributor

Phlosioneer commented Oct 17, 2017

Also, there doesn't appear to be any way to check "did you mean" stuff using commands... it's categorized by the json as kind: None, but there's no command //~ NONE.

I'm just leaving them in as comments; they're still checked by stderr formatting diffs.

@Phlosioneer
Copy link
Contributor

There's 78 ui tests to fix, and a few features and special cases need to be added to my ui test runner code. Here's my work-in-progress stuff: https://github.com/Phlosioneer/rust

Should I set up a pull request and just let it sit there while I work on this, for feedback? Or should I wait until I'm actually ready to submit the code?

@nikomatsakis
Copy link
Contributor

@Phlosioneer

I'm going through and fixing each one right now. This might take some time.

You are awesome. Thank you.

Also, there doesn't appear to be any way to check "did you mean" stuff using commands... it's categorized by the json as kind: None, but there's no command //~ NONE.

I had expected us not to parse json anymore but instead to go back to scraping from the output (which we used to do before we parsed JSON). Are you compiling everything twice? (I guess I can check your branch.)

@nikomatsakis
Copy link
Contributor

@Phlosioneer

Opening up a [WIP] PR is perfectly ok, it's often easier to give feedback that way. You can put r? @nikomatsakis if you want.

@nikomatsakis
Copy link
Contributor

@rfcbot fcp merge

I'd like to propose transition compile-fail (and eventually run-pass) to UI tests, subject to the conditions that I described here. In particular, subject to the conditions that //~ ERROR annotations are checked in some fashion, and perhaps that we rewrite the "update reference files" tool in pure Rust so that it can be used across platforms.

I've made my "positive" case before, in [this internals thread]. It is very similar to what @estebank had to say.

@rust-lang/compiler, feel free to tell me why this is such a terrible idea. =)

bors added a commit that referenced this issue Jul 17, 2018
Move some `compile-fail` tests to `ui`

Re: #44844.
@nikomatsakis
Copy link
Contributor

I would like to re-raise this issue in importance. We have great tooling for comparing the AST and MIR borrow checkers, but it is ALL based on ui tests. Getting rid of compile-fail would go a long way towards increasing my confidence.

@nikomatsakis
Copy link
Contributor

As such, I am marking this as an NLL Milestone issue.

@davidtwco
Copy link
Member

I'm currently taking a stab at this, will self-assign.

@estebank
Copy link
Contributor Author

estebank commented Aug 8, 2018

@davidtwco I'd advice doing it piece meal, not more than a couple hundred at a time, for your sanity's sake. You'll find that there are some tests with platform dependent output, which will require using some of the more esoteric features of ui tests (literal replacement), but there're tons of low hanging fruit that only needs to be moved with no changes. Also, the more files you involve the harder it'll be for you to merge it back as things change in master.

bors added a commit that referenced this issue Aug 10, 2018
bors added a commit that referenced this issue Aug 13, 2018
bors added a commit that referenced this issue Aug 14, 2018
@davidtwco
Copy link
Member

This is completed as of #53196. As there are still some tests in compile-fail that weren't migrated for various reasons, I'm going to open some extra issues with the remaining work.

@davidtwco
Copy link
Member

Submitted #53353, #53352 and #53351 as follow-ups.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-diagnostics Area: Messages for errors, warnings, and lints C-tracking-issue Category: A tracking issue for an RFC or an unstable feature. disposition-merge This issue / PR is in PFCP or FCP with a disposition to merge it. E-easy Call for participation: Easy difficulty. Experience needed to fix: Not much. Good first issue. E-mentor Call for participation: This issue has a mentor. Use #t-compiler/help on Zulip for discussion. finished-final-comment-period The final comment period is finished for this PR / Issue. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. WG-diagnostics Working group: Diagnostics
Projects
None yet
Development

No branches or pull requests