Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
硅谷海盗
kotlin
提交
c3854c93
K
kotlin
项目概览
硅谷海盗
/
kotlin
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
kotlin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
c3854c93
编写于
6月 10, 2011
作者:
A
Andrey Breslav
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Negations supported
上级
49b60c3a
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
63 addition
and
4 deletion
+63
-4
idea/src/org/jetbrains/jet/lang/psi/JetPrefixExpression.java
idea/src/org/jetbrains/jet/lang/psi/JetPrefixExpression.java
+2
-3
idea/src/org/jetbrains/jet/lang/psi/JetUnaryExpression.java
idea/src/org/jetbrains/jet/lang/psi/JetUnaryExpression.java
+1
-1
idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
+19
-0
idea/testData/checker/Nullability.jet
idea/testData/checker/Nullability.jet
+41
-0
未找到文件。
idea/src/org/jetbrains/jet/lang/psi/JetPrefixExpression.java
浏览文件 @
c3854c93
...
...
@@ -3,7 +3,7 @@ package org.jetbrains.jet.lang.psi;
import
com.intellij.lang.ASTNode
;
import
com.intellij.psi.PsiElement
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.
jet.JetNodeTypes
;
import
org.jetbrains.
annotations.Nullable
;
/**
* @author max
...
...
@@ -18,13 +18,12 @@ public class JetPrefixExpression extends JetUnaryExpression {
visitor
.
visitPrefixExpression
(
this
);
}
@N
otNull
@N
ullable
@IfNotParsed
public
JetExpression
getBaseExpression
()
{
PsiElement
expression
=
getOperationSign
().
getNextSibling
();
while
(
expression
!=
null
&&
false
==
expression
instanceof
JetExpression
)
{
expression
=
expression
.
getNextSibling
();
}
assert
expression
!=
null
;
return
(
JetExpression
)
expression
;
}
}
idea/src/org/jetbrains/jet/lang/psi/JetUnaryExpression.java
浏览文件 @
c3854c93
...
...
@@ -2,6 +2,7 @@ package org.jetbrains.jet.lang.psi;
import
com.intellij.lang.ASTNode
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.Nullable
;
import
org.jetbrains.jet.JetNodeTypes
;
/**
...
...
@@ -12,7 +13,6 @@ public abstract class JetUnaryExpression extends JetExpression {
super
(
node
);
}
@NotNull
public
abstract
JetExpression
getBaseExpression
();
@NotNull
...
...
idea/src/org/jetbrains/jet/lang/types/JetTypeInferrer.java
浏览文件 @
c3854c93
...
...
@@ -1403,6 +1403,25 @@ public class JetTypeInferrer {
}
}
}
@Override
public
void
visitUnaryExpression
(
JetUnaryExpression
expression
)
{
IElementType
operationTokenType
=
expression
.
getOperationSign
().
getReferencedNameElementType
();
if
(
operationTokenType
==
JetTokens
.
EXCL
)
{
JetExpression
baseExpression
=
expression
.
getBaseExpression
();
if
(
baseExpression
!=
null
)
{
result
[
0
]
=
extractDataFlowInfoFromCondition
(
baseExpression
,
!
conditionValue
);
}
}
}
@Override
public
void
visitParenthesizedExpression
(
JetParenthesizedExpression
expression
)
{
JetExpression
body
=
expression
.
getExpression
();
if
(
body
!=
null
)
{
body
.
accept
(
this
);
}
}
});
return
result
[
0
];
}
...
...
idea/testData/checker/Nullability.jet
浏览文件 @
c3854c93
...
...
@@ -214,3 +214,44 @@ fun f6(s : String?) {
} while (s == null)
s.get(0)
}
fun f7(s : String?, t : String?) {
s?.get(0)
if (!(s == null)) {
s.get(0)
}
s?.get(0)
if (!(s != null)) {
s?.get(0)
}
else {
s.get(0)
}
s?.get(0)
if (!!(s != null)) {
s.get(0)
}
else {
s?.get(0)
}
s?.get(0)
t?.get(0)
if (!(s == null || t == null)) {
s.get(0)
t.get(0)
}
else {
s?.get(0)
t?.get(0)
}
s?.get(0)
t?.get(0)
if (!(s == null && s == null)) {
s.get(0)
t?.get(0)
}
else {
s?.get(0)
t?.get(0)
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录