Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
int
Rust
提交
63513d06
R
Rust
项目概览
int
/
Rust
大约 1 年 前同步成功
通知
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,发现更多精彩内容 >>
提交
63513d06
编写于
2月 28, 2015
作者:
M
Ms2ger
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Remove the re-exports for InlineAttr variants.
上级
48aeaba9
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
18 deletion
+17
-18
src/librustc_trans/trans/base.rs
src/librustc_trans/trans/base.rs
+5
-5
src/libsyntax/attr.rs
src/libsyntax/attr.rs
+12
-13
未找到文件。
src/librustc_trans/trans/base.rs
浏览文件 @
63513d06
...
...
@@ -433,13 +433,13 @@ pub fn set_inline_hint(f: ValueRef) {
}
pub
fn
set_llvm_fn_attrs
(
ccx
:
&
CrateContext
,
attrs
:
&
[
ast
::
Attribute
],
llfn
:
ValueRef
)
{
use
syntax
::
attr
::
*
;
use
syntax
::
attr
::
{
find_inline_attr
,
InlineAttr
}
;
// Set the inline hint if there is one
match
find_inline_attr
(
Some
(
ccx
.sess
()
.diagnostic
()),
attrs
)
{
InlineHint
=>
set_inline_hint
(
llfn
),
InlineAlways
=>
set_always_inline
(
llfn
),
InlineNever
=>
set_no_inline
(
llfn
),
InlineNone
=>
{
/* fallthrough */
}
Inline
Attr
::
Hint
=>
set_inline_hint
(
llfn
),
InlineA
ttr
::
A
lways
=>
set_always_inline
(
llfn
),
Inline
Attr
::
Never
=>
set_no_inline
(
llfn
),
Inline
Attr
::
None
=>
{
/* fallthrough */
}
}
for
attr
in
attrs
{
...
...
src/libsyntax/attr.rs
浏览文件 @
63513d06
...
...
@@ -10,7 +10,6 @@
// Functions dealing with attributes and meta items
pub
use
self
::
InlineAttr
::
*
;
pub
use
self
::
StabilityLevel
::
*
;
pub
use
self
::
ReprAttr
::
*
;
pub
use
self
::
IntType
::
*
;
...
...
@@ -285,33 +284,33 @@ pub fn find_crate_name(attrs: &[Attribute]) -> Option<InternedString> {
#[derive(Copy,
PartialEq)]
pub
enum
InlineAttr
{
Inline
None
,
Inline
Hint
,
Inline
Always
,
Inline
Never
,
None
,
Hint
,
Always
,
Never
,
}
/// Determine what `#[inline]` attribute is present in `attrs`, if any.
pub
fn
find_inline_attr
(
diagnostic
:
Option
<&
SpanHandler
>
,
attrs
:
&
[
Attribute
])
->
InlineAttr
{
// FIXME (#2809)---validate the usage of #[inline] and #[inline]
attrs
.iter
()
.fold
(
InlineNone
,
|
ia
,
attr
|
{
attrs
.iter
()
.fold
(
Inline
Attr
::
None
,
|
ia
,
attr
|
{
match
attr
.node.value.node
{
MetaWord
(
ref
n
)
if
*
n
==
"inline"
=>
{
mark_used
(
attr
);
InlineHint
Inline
Attr
::
Hint
}
MetaList
(
ref
n
,
ref
items
)
if
*
n
==
"inline"
=>
{
mark_used
(
attr
);
if
items
.len
()
!=
1
{
diagnostic
.map
(|
d
|{
d
.span_err
(
attr
.span
,
"expected one argument"
);
});
InlineNone
Inline
Attr
::
None
}
else
if
contains_name
(
&
items
[
..
],
"always"
)
{
InlineAlways
InlineA
ttr
::
A
lways
}
else
if
contains_name
(
&
items
[
..
],
"never"
)
{
InlineNever
Inline
Attr
::
Never
}
else
{
diagnostic
.map
(|
d
|{
d
.span_err
((
*
items
[
0
])
.span
,
"invalid argument"
);
});
InlineNone
Inline
Attr
::
None
}
}
_
=>
ia
...
...
@@ -322,8 +321,8 @@ pub fn find_inline_attr(diagnostic: Option<&SpanHandler>, attrs: &[Attribute]) -
/// True if `#[inline]` or `#[inline(always)]` is present in `attrs`.
pub
fn
requests_inline
(
attrs
:
&
[
Attribute
])
->
bool
{
match
find_inline_attr
(
None
,
attrs
)
{
Inline
Hint
|
Inline
Always
=>
true
,
Inline
None
|
Inline
Never
=>
false
,
Inline
Attr
::
Hint
|
InlineAttr
::
Always
=>
true
,
Inline
Attr
::
None
|
InlineAttr
::
Never
=>
false
,
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录