ObsoleteSwap,
ObsoleteUnsafeBlock,
ObsoleteBareFnType,
- ObsoleteNamedExternModule,
ObsoleteMultipleLocalDecl,
ObsoleteUnsafeExternFn,
ObsoleteTraitFuncVisibility,
ObsoleteBoxedClosure,
ObsoleteClosureType,
ObsoleteMultipleImport,
- ObsoleteExternModAttributesInParens,
ObsoleteManagedPattern,
ObsoleteManagedString,
ObsoleteManagedVec,
"bare function type",
"use `|A| -> B` or `extern fn(A) -> B` instead"
),
- ObsoleteNamedExternModule => (
- "named external module",
- "instead of `extern mod foo { ... }`, write `mod foo { \
- extern { ... } }`"
- ),
ObsoleteMultipleLocalDecl => (
"declaration of multiple locals at once",
"instead of e.g. `let a = 1, b = 2`, write \
"multiple imports",
"only one import is allowed per `use` statement"
),
- ObsoleteExternModAttributesInParens => (
- "`extern mod` with linkage attribute list",
- "use `extern mod foo = \"bar\";` instead of \
- `extern mod foo (name = \"bar\")`"
- ),
ObsoleteManagedPattern => (
"managed pointer pattern",
"use a nested `match` expression instead of a managed box \
// option. This file may not be copied, modified, or distributed
// except according to those terms.
-extern mod obsolete_name {
- //~^ ERROR obsolete syntax: named external module
- fn bar();
-}
-
trait A {
pub fn foo(); //~ ERROR: visibility not necessary
pub fn bar(); //~ ERROR: visibility not necessary