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

Comments

@estebank
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
@Mark-Simulacrum

This comment has been minimized.

Show comment
Hide comment
@Mark-Simulacrum

Mark-Simulacrum Sep 26, 2017

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.

Member

Mark-Simulacrum commented Sep 26, 2017

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

This comment has been minimized.

Show comment
Hide comment
@Zoxc

Zoxc Sep 26, 2017

Contributor

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

Contributor

Zoxc commented Sep 26, 2017

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

@estebank

This comment has been minimized.

Show comment
Hide comment
@estebank

estebank Sep 26, 2017

Contributor

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.

Contributor

estebank commented Sep 26, 2017

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

This comment has been minimized.

Show comment
Hide comment
@petrochenkov

petrochenkov Sep 26, 2017

Contributor

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.

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

This comment has been minimized.

Show comment
Hide comment
@GuillaumeGomez

GuillaumeGomez Sep 26, 2017

Member

It seems like a really strange idea...

Member

GuillaumeGomez commented Sep 26, 2017

It seems like a really strange idea...

@estebank

This comment has been minimized.

Show comment
Hide comment
@estebank

estebank Sep 26, 2017

Contributor

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?

Contributor

estebank commented Sep 26, 2017

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?

@GuillaumeGomez

This comment has been minimized.

Show comment
Hide comment
@GuillaumeGomez

GuillaumeGomez Sep 27, 2017

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.

Member

GuillaumeGomez commented Sep 27, 2017

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

This comment has been minimized.

Show comment
Hide comment
@petrochenkov

petrochenkov Sep 28, 2017

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.

Contributor

petrochenkov commented Sep 28, 2017

@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

This comment has been minimized.

Show comment
Hide comment
@GuillaumeGomez

GuillaumeGomez Sep 28, 2017

Member

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

Member

GuillaumeGomez commented Sep 28, 2017

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

@Zoxc

This comment has been minimized.

Show comment
Hide comment
@Zoxc

Zoxc Sep 29, 2017

Contributor

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.

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

This comment has been minimized.

Show comment
Hide comment
@GuillaumeGomez

GuillaumeGomez Sep 30, 2017

Member

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

Member

GuillaumeGomez commented Sep 30, 2017

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

@pnkfelix pnkfelix added the T-compiler label Sep 30, 2017

@pnkfelix

This comment has been minimized.

Show comment
Hide comment
@pnkfelix

pnkfelix Sep 30, 2017

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).

Member

pnkfelix commented Sep 30, 2017

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

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Oct 10, 2017

Contributor

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.)

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

This comment has been minimized.

Show comment
Hide comment
@Phlosioneer

Phlosioneer Oct 16, 2017

Contributor

@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.

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

This comment has been minimized.

Show comment
Hide comment
@Phlosioneer

Phlosioneer Oct 17, 2017

Contributor

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.

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

This comment has been minimized.

Show comment
Hide comment
@Phlosioneer

Phlosioneer Oct 17, 2017

Contributor

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.

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

This comment has been minimized.

Show comment
Hide comment
@Phlosioneer

Phlosioneer Oct 17, 2017

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?

Contributor

Phlosioneer commented Oct 17, 2017

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

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Oct 19, 2017

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.)

Contributor

nikomatsakis commented Oct 19, 2017

@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

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Oct 19, 2017

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.

Contributor

nikomatsakis commented Oct 19, 2017

@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

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Oct 19, 2017

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. =)

Contributor

nikomatsakis commented Oct 19, 2017

@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. =)

@nikomatsakis

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis May 29, 2018

Contributor

Seems like we have all the features we need now to do this, right? Also, the workflow for ui tests -- thanks to --bless -- is now wicked convenient.

Contributor

nikomatsakis commented May 29, 2018

Seems like we have all the features we need now to do this, right? Also, the workflow for ui tests -- thanks to --bless -- is now wicked convenient.

bors added a commit that referenced this issue Jul 16, 2018

Auto merge of #52409 - estebank:move-cfail-ui, r=oli-obk
Move some `compile-fail` tests to `ui`

Re: #44844.

bors added a commit that referenced this issue Jul 16, 2018

Auto merge of #52409 - estebank:move-cfail-ui, r=oli-obk
Move some `compile-fail` tests to `ui`

Re: #44844.

bors added a commit that referenced this issue Jul 16, 2018

Auto merge of #52409 - estebank:move-cfail-ui, r=oli-obk
Move some `compile-fail` tests to `ui`

Re: #44844.

bors added a commit that referenced this issue Jul 17, 2018

Auto merge of #52409 - estebank:move-cfail-ui, r=oli-obk
Move some `compile-fail` tests to `ui`

Re: #44844.
@nikomatsakis

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Aug 7, 2018

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.

Contributor

nikomatsakis commented Aug 7, 2018

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 nikomatsakis added this to the Rust 2018 RC milestone Aug 7, 2018

@nikomatsakis

This comment has been minimized.

Show comment
Hide comment
@nikomatsakis

nikomatsakis Aug 7, 2018

Contributor

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

Contributor

nikomatsakis commented Aug 7, 2018

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

@davidtwco

This comment has been minimized.

Show comment
Hide comment
@davidtwco

davidtwco Aug 8, 2018

Member

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

Member

davidtwco commented Aug 8, 2018

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

@estebank

This comment has been minimized.

Show comment
Hide comment
@estebank

estebank Aug 8, 2018

Contributor

@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.

Contributor

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 9, 2018

bors added a commit that referenced this issue Aug 10, 2018

bors added a commit that referenced this issue Aug 10, 2018

bors added a commit that referenced this issue Aug 10, 2018

bors added a commit that referenced this issue Aug 10, 2018

bors added a commit that referenced this issue Aug 11, 2018

bors added a commit that referenced this issue Aug 12, 2018

bors added a commit that referenced this issue Aug 13, 2018

bors added a commit that referenced this issue Aug 13, 2018

bors added a commit that referenced this issue Aug 13, 2018

bors added a commit that referenced this issue Aug 14, 2018

bors added a commit that referenced this issue Aug 14, 2018

@davidtwco

This comment has been minimized.

Show comment
Hide comment
@davidtwco

davidtwco Aug 14, 2018

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.

Member

davidtwco commented Aug 14, 2018

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

This comment has been minimized.

Show comment
Hide comment
@davidtwco

davidtwco Aug 14, 2018

Member

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

Member

davidtwco commented Aug 14, 2018

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

@davidtwco davidtwco closed this Aug 14, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment