Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
dabf0c63
R
Rust
项目概览
int
/
Rust
11 个月 前同步成功
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
Rust
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
dabf0c63
编写于
4月 14, 2015
作者:
B
bors
浏览文件
操作
浏览文件
下载
差异文件
Auto merge of #24312 - rprichard:destabilize-format-args, r=alexcrichton
Fixes #22953.
上级
47551b57
86155639
变更
16
隐藏空白更改
内联
并排
Showing
16 changed file
with
61 addition
and
61 deletion
+61
-61
src/libcore/fmt/mod.rs
src/libcore/fmt/mod.rs
+12
-6
src/libcore/fmt/rt/v1.rs
src/libcore/fmt/rt/v1.rs
+24
-23
src/libsyntax/ext/format.rs
src/libsyntax/ext/format.rs
+25
-19
src/test/run-pass/c-stack-returning-int64.rs
src/test/run-pass/c-stack-returning-int64.rs
+0
-1
src/test/run-pass/capturing-logging.rs
src/test/run-pass/capturing-logging.rs
+0
-1
src/test/run-pass/clone-with-exterior.rs
src/test/run-pass/clone-with-exterior.rs
+0
-1
src/test/run-pass/exponential-notation.rs
src/test/run-pass/exponential-notation.rs
+0
-1
src/test/run-pass/float-nan.rs
src/test/run-pass/float-nan.rs
+0
-1
src/test/run-pass/foreign-fn-linkname.rs
src/test/run-pass/foreign-fn-linkname.rs
+0
-1
src/test/run-pass/issue-11881.rs
src/test/run-pass/issue-11881.rs
+0
-1
src/test/run-pass/issue-20676.rs
src/test/run-pass/issue-20676.rs
+0
-1
src/test/run-pass/item-attributes.rs
src/test/run-pass/item-attributes.rs
+0
-1
src/test/run-pass/rust-log-filter.rs
src/test/run-pass/rust-log-filter.rs
+0
-1
src/test/run-pass/task-comm-7.rs
src/test/run-pass/task-comm-7.rs
+0
-1
src/test/run-pass/task-spawn-move-and-copy.rs
src/test/run-pass/task-spawn-move-and-copy.rs
+0
-1
src/test/run-pass/variadic-ffi.rs
src/test/run-pass/variadic-ffi.rs
+0
-1
未找到文件。
src/libcore/fmt/mod.rs
浏览文件 @
dabf0c63
...
...
@@ -38,7 +38,8 @@
mod
float
;
mod
builders
;
#[stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#[cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
#[doc(hidden)]
pub
mod
rt
{
pub
mod
v1
;
...
...
@@ -134,7 +135,8 @@ enum Void {}
/// compile time it is ensured that the function and the value have the correct
/// types, and then this struct is used to canonicalize arguments to one type.
#[derive(Copy)]
#[stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#[cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
#[doc(hidden)]
pub
struct
ArgumentV1
<
'a
>
{
value
:
&
'a
Void
,
...
...
@@ -154,7 +156,8 @@ fn show_usize(x: &usize, f: &mut Formatter) -> Result {
}
#[doc(hidden)]
#[stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#[cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
pub
fn
new
<
'b
,
T
>
(
x
:
&
'b
T
,
f
:
fn
(
&
T
,
&
mut
Formatter
)
->
Result
)
->
ArgumentV1
<
'b
>
{
unsafe
{
...
...
@@ -166,7 +169,8 @@ pub fn new<'b, T>(x: &'b T,
}
#[doc(hidden)]
#[stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#[cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
pub
fn
from_usize
(
x
:
&
usize
)
->
ArgumentV1
{
ArgumentV1
::
new
(
x
,
ArgumentV1
::
show_usize
)
}
...
...
@@ -189,7 +193,8 @@ impl<'a> Arguments<'a> {
/// When using the format_args!() macro, this function is used to generate the
/// Arguments structure.
#[doc(hidden)]
#[inline]
#[stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#[cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
pub
fn
new_v1
(
pieces
:
&
'a
[
&
'a
str
],
args
:
&
'a
[
ArgumentV1
<
'a
>
])
->
Arguments
<
'a
>
{
Arguments
{
...
...
@@ -206,7 +211,8 @@ pub fn new_v1(pieces: &'a [&'a str],
/// created with `argumentusize`. However, failing to do so doesn't cause
/// unsafety, but will ignore invalid .
#[doc(hidden)]
#[inline]
#[stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#[cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
pub
fn
new_v1_formatted
(
pieces
:
&
'a
[
&
'a
str
],
args
:
&
'a
[
ArgumentV1
<
'a
>
],
fmt
:
&
'a
[
rt
::
v1
::
Argument
])
->
Arguments
<
'a
>
{
...
...
src/libcore/fmt/rt/v1.rs
浏览文件 @
dabf0c63
...
...
@@ -14,68 +14,69 @@
//! These definitions are similar to their `ct` equivalents, but differ in that
//! these can be statically allocated and are slightly optimized for the runtime
#![stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#![cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
))]
#![cfg_attr(not(stage0),
unstable(feature
=
"core"
,
reason
=
"internal to format_args!"
))]
#[derive(Copy,
Clone)]
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
struct
Argument
{
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
position
:
Position
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
format
:
FormatSpec
,
}
#[derive(Copy,
Clone)]
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
struct
FormatSpec
{
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
fill
:
char
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
align
:
Alignment
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
flags
:
u32
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
precision
:
Count
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
width
:
Count
,
}
/// Possible alignments that can be requested as part of a formatting directive.
#[derive(Copy,
Clone,
PartialEq)]
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
enum
Alignment
{
/// Indication that contents should be left-aligned.
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Left
,
/// Indication that contents should be right-aligned.
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Right
,
/// Indication that contents should be center-aligned.
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Center
,
/// No alignment was requested.
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Unknown
,
}
#[derive(Copy,
Clone)]
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
enum
Count
{
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Is
(
usize
),
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Param
(
usize
),
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
NextParam
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Implied
,
}
#[derive(Copy,
Clone)]
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
pub
enum
Position
{
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
Next
,
#[
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)]
#[
cfg_attr(stage0,
stable(feature
=
"rust1"
,
since
=
"1.0.0"
)
)]
At
(
usize
)
}
src/libsyntax/ext/format.rs
浏览文件 @
dabf0c63
...
...
@@ -38,6 +38,10 @@ enum Position {
struct
Context
<
'a
,
'b
:
'a
>
{
ecx
:
&
'a
mut
ExtCtxt
<
'b
>
,
/// The macro's call site. References to unstable formatting internals must
/// use this span to pass the stability checker.
macsp
:
Span
,
/// The span of the format string literal.
fmtsp
:
Span
,
/// Parsed argument expressions and the types that we've found so far for
...
...
@@ -308,7 +312,7 @@ fn rtpath(ecx: &ExtCtxt, s: &str) -> Vec<ast::Ident> {
}
fn
trans_count
(
&
self
,
c
:
parse
::
Count
)
->
P
<
ast
::
Expr
>
{
let
sp
=
self
.
fmt
sp
;
let
sp
=
self
.
mac
sp
;
let
count
=
|
c
,
arg
|
{
let
mut
path
=
Context
::
rtpath
(
self
.ecx
,
"Count"
);
path
.push
(
self
.ecx
.ident_of
(
c
));
...
...
@@ -346,7 +350,7 @@ fn trans_literal_string(&mut self) -> P<ast::Expr> {
/// Translate a `parse::Piece` to a static `rt::Argument` or append
/// to the `literal` string.
fn
trans_piece
(
&
mut
self
,
piece
:
&
parse
::
Piece
)
->
Option
<
P
<
ast
::
Expr
>>
{
let
sp
=
self
.
fmt
sp
;
let
sp
=
self
.
mac
sp
;
match
*
piece
{
parse
::
String
(
s
)
=>
{
self
.literal
.push_str
(
s
);
...
...
@@ -442,22 +446,22 @@ fn static_array(ecx: &mut ExtCtxt,
piece_ty
:
P
<
ast
::
Ty
>
,
pieces
:
Vec
<
P
<
ast
::
Expr
>>
)
->
P
<
ast
::
Expr
>
{
let
fmt
sp
=
piece_ty
.span
;
let
ty
=
ecx
.ty_rptr
(
fmt
sp
,
ecx
.ty
(
fmt
sp
,
ast
::
TyVec
(
piece_ty
)),
Some
(
ecx
.lifetime
(
fmt
sp
,
special_idents
::
static_lifetime
.name
)),
let
sp
=
piece_ty
.span
;
let
ty
=
ecx
.ty_rptr
(
sp
,
ecx
.ty
(
sp
,
ast
::
TyVec
(
piece_ty
)),
Some
(
ecx
.lifetime
(
sp
,
special_idents
::
static_lifetime
.name
)),
ast
::
MutImmutable
);
let
slice
=
ecx
.expr_vec_slice
(
fmt
sp
,
pieces
);
let
slice
=
ecx
.expr_vec_slice
(
sp
,
pieces
);
let
st
=
ast
::
ItemStatic
(
ty
,
ast
::
MutImmutable
,
slice
);
let
name
=
ecx
.ident_of
(
name
);
let
item
=
ecx
.item
(
fmt
sp
,
name
,
vec!
[],
st
);
let
decl
=
respan
(
fmt
sp
,
ast
::
DeclItem
(
item
));
let
item
=
ecx
.item
(
sp
,
name
,
vec!
[],
st
);
let
decl
=
respan
(
sp
,
ast
::
DeclItem
(
item
));
// Wrap the declaration in a block so that it forms a single expression.
ecx
.expr_block
(
ecx
.block
(
fmt
sp
,
vec!
[
P
(
respan
(
fmt
sp
,
ast
::
StmtDecl
(
P
(
decl
),
ast
::
DUMMY_NODE_ID
)))],
Some
(
ecx
.expr_ident
(
fmt
sp
,
name
))))
ecx
.expr_block
(
ecx
.block
(
sp
,
vec!
[
P
(
respan
(
sp
,
ast
::
StmtDecl
(
P
(
decl
),
ast
::
DUMMY_NODE_ID
)))],
Some
(
ecx
.expr_ident
(
sp
,
name
))))
}
/// Actually builds the expression which the iformat! block will be expanded
...
...
@@ -497,7 +501,7 @@ fn into_expr(mut self) -> P<ast::Expr> {
let
name
=
self
.ecx
.ident_of
(
&
format!
(
"__arg{}"
,
i
));
pats
.push
(
self
.ecx
.pat_ident
(
e
.span
,
name
));
locals
.push
(
Context
::
format_arg
(
self
.ecx
,
e
.span
,
arg_ty
,
locals
.push
(
Context
::
format_arg
(
self
.ecx
,
self
.macsp
,
e
.span
,
arg_ty
,
self
.ecx
.expr_ident
(
e
.span
,
name
)));
heads
.push
(
self
.ecx
.expr_addr_of
(
e
.span
,
e
));
}
...
...
@@ -515,7 +519,7 @@ fn into_expr(mut self) -> P<ast::Expr> {
*
name
));
pats
.push
(
self
.ecx
.pat_ident
(
e
.span
,
lname
));
names
[
*
self
.name_positions
.get
(
name
)
.unwrap
()]
=
Some
(
Context
::
format_arg
(
self
.ecx
,
e
.span
,
arg_ty
,
Some
(
Context
::
format_arg
(
self
.ecx
,
self
.macsp
,
e
.span
,
arg_ty
,
self
.ecx
.expr_ident
(
e
.span
,
lname
)));
heads
.push
(
self
.ecx
.expr_addr_of
(
e
.span
,
e
));
}
...
...
@@ -566,7 +570,7 @@ fn into_expr(mut self) -> P<ast::Expr> {
// Build up the static array which will store our precompiled
// nonstandard placeholders, if there are any.
let
piece_ty
=
self
.ecx
.ty_path
(
self
.ecx
.path_global
(
self
.
fmt
sp
,
self
.
mac
sp
,
Context
::
rtpath
(
self
.ecx
,
"Argument"
)));
let
fmt
=
Context
::
static_array
(
self
.ecx
,
"__STATIC_FMTARGS"
,
...
...
@@ -576,14 +580,14 @@ fn into_expr(mut self) -> P<ast::Expr> {
(
"new_v1_formatted"
,
vec!
[
pieces
,
args_slice
,
fmt
])
};
self
.ecx
.expr_call_global
(
self
.
fmt
sp
,
vec!
(
self
.ecx
.expr_call_global
(
self
.
mac
sp
,
vec!
(
self
.ecx
.ident_of_std
(
"core"
),
self
.ecx
.ident_of
(
"fmt"
),
self
.ecx
.ident_of
(
"Arguments"
),
self
.ecx
.ident_of
(
fn_name
)),
fn_args
)
}
fn
format_arg
(
ecx
:
&
ExtCtxt
,
sp
:
Span
,
fn
format_arg
(
ecx
:
&
ExtCtxt
,
macsp
:
Span
,
sp
:
Span
,
ty
:
&
ArgumentType
,
arg
:
P
<
ast
::
Expr
>
)
->
P
<
ast
::
Expr
>
{
let
trait_
=
match
*
ty
{
...
...
@@ -607,7 +611,7 @@ fn format_arg(ecx: &ExtCtxt, sp: Span,
}
}
Unsigned
=>
{
return
ecx
.expr_call_global
(
sp
,
vec!
[
return
ecx
.expr_call_global
(
mac
sp
,
vec!
[
ecx
.ident_of_std
(
"core"
),
ecx
.ident_of
(
"fmt"
),
ecx
.ident_of
(
"ArgumentV1"
),
...
...
@@ -620,7 +624,7 @@ fn format_arg(ecx: &ExtCtxt, sp: Span,
ecx
.ident_of
(
"fmt"
),
ecx
.ident_of
(
trait_
),
ecx
.ident_of
(
"fmt"
)]);
ecx
.expr_call_global
(
sp
,
vec!
[
ecx
.expr_call_global
(
mac
sp
,
vec!
[
ecx
.ident_of_std
(
"core"
),
ecx
.ident_of
(
"fmt"
),
ecx
.ident_of
(
"ArgumentV1"
),
...
...
@@ -650,6 +654,7 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, sp: Span,
names
:
HashMap
<
String
,
P
<
ast
::
Expr
>>
)
->
P
<
ast
::
Expr
>
{
let
arg_types
:
Vec
<
_
>
=
(
0
..
args
.len
())
.map
(|
_
|
None
)
.collect
();
let
macsp
=
ecx
.call_site
();
// Expand the format literal so that efmt.span will have a backtrace. This
// is essential for locating a bug when the format literal is generated in
// a macro. (e.g. println!("{}"), which uses concat!($fmt, "\n")).
...
...
@@ -668,6 +673,7 @@ pub fn expand_preparsed_format_args(ecx: &mut ExtCtxt, sp: Span,
pieces
:
Vec
::
new
(),
str_pieces
:
Vec
::
new
(),
all_pieces_simple
:
true
,
macsp
:
macsp
,
fmtsp
:
efmt
.span
,
};
let
fmt
=
match
expr_to_string
(
cx
.ecx
,
...
...
src/test/run-pass/c-stack-returning-int64.rs
浏览文件 @
dabf0c63
...
...
@@ -9,7 +9,6 @@
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(libc,
std_misc)]
...
...
src/test/run-pass/capturing-logging.rs
浏览文件 @
dabf0c63
...
...
@@ -10,7 +10,6 @@
// exec-env:RUST_LOG=info
// pretty-expanded FIXME #23616
#![allow(unknown_features)]
#![feature(box_syntax,
old_io,
rustc_private,
std_misc)]
...
...
src/test/run-pass/clone-with-exterior.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![allow(unknown_features)]
#![feature(box_syntax,
std_misc)]
...
...
src/test/run-pass/exponential-notation.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(std_misc)]
...
...
src/test/run-pass/float-nan.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(std_misc)]
...
...
src/test/run-pass/foreign-fn-linkname.rs
浏览文件 @
dabf0c63
...
...
@@ -9,7 +9,6 @@
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(std_misc,
libc)]
...
...
src/test/run-pass/issue-11881.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(rustc_private,
old_io)]
...
...
src/test/run-pass/issue-20676.rs
浏览文件 @
dabf0c63
...
...
@@ -12,7 +12,6 @@
// UFCS-style calls to a method in `Trait` where `Self` was bound to a
// trait object of type `Trait`. See also `ufcs-trait-object.rs`.
// pretty-expanded FIXME #23616
use
std
::
fmt
;
...
...
src/test/run-pass/item-attributes.rs
浏览文件 @
dabf0c63
...
...
@@ -12,7 +12,6 @@
// for completeness since .rs files linked from .rc files support this
// notation to specify their module's attributes
// pretty-expanded FIXME #23616
#![feature(custom_attribute,
libc)]
#![allow(unused_attribute)]
...
...
src/test/run-pass/rust-log-filter.rs
浏览文件 @
dabf0c63
...
...
@@ -10,7 +10,6 @@
// exec-env:RUST_LOG=rust_log_filter/foo
// pretty-expanded FIXME #23616
#![allow(unknown_features)]
#![feature(box_syntax,
std_misc,
rustc_private)]
...
...
src/test/run-pass/task-comm-7.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(std_misc)]
#![allow(dead_assignment)]
...
...
src/test/run-pass/task-spawn-move-and-copy.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![allow(unknown_features)]
#![feature(box_syntax,
std_misc)]
...
...
src/test/run-pass/variadic-ffi.rs
浏览文件 @
dabf0c63
...
...
@@ -8,7 +8,6 @@
// option. This file may not be copied, modified, or distributed
// except according to those terms.
// pretty-expanded FIXME #23616
#![feature(libc,
std_misc)]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录