Merge remote-tracking branch 'origin/master'

Conflicts:
	compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ControlStructureTypingVisitor.java
This commit is contained in:
svtk
2011-11-28 18:40:24 +04:00
39 changed files with 508 additions and 137 deletions
@@ -0,0 +1,8 @@
// http://youtrack.jetbrains.net/issue/KT-552
// KT-552 For variable unresolved if loop body is not block
fun ff() {
var i = 1
for (j in 1..10)
i += j
}
@@ -0,0 +1,14 @@
//KT-337 Can't break a line before a dot
class A() {
fun foo() {}
}
fun test() {
val a = A()
a
.foo() // Should be a valid expression
}
@@ -0,0 +1,5 @@
fun f(p: Int): Int {
val <!NAME_SHADOWING!>p<!> = 2
return p
}
@@ -0,0 +1,7 @@
fun f(i: Int) {
for (j in 1..100) {
{
var <!NAME_SHADOWING!>i<!> = 12
}
}
}
@@ -0,0 +1,3 @@
val i = 17
val f = { (): Int => var i = 17; i }
@@ -0,0 +1,11 @@
class RedefinePropertyInFor() {
var i = 1
fun ff() {
for (i in 0..10) {
}
}
}
@@ -0,0 +1,10 @@
class RedefinePropertyInFunction() {
var i = 17
fun f(): Int {
var i = 18
return i
}
}
@@ -0,0 +1,6 @@
fun ff(): Int {
var i = 1
for (<!NAME_SHADOWING!>i<!> in 0..10) {
}
return i
}
@@ -0,0 +1,7 @@
fun ff(): Int {
var i = 1
{
val <!NAME_SHADOWING!>i<!> = 2
}
return i
}
@@ -0,0 +1,5 @@
fun f(): Int {
var i = 17
{ (): Unit => var <!NAME_SHADOWING!>i<!> = 18 }
return i
}
@@ -0,0 +1,5 @@
fun ff(): Int {
var i = 1
{ (i: Int) => i }
return i
}
@@ -0,0 +1,29 @@
namespace demo
public open class Identifier<T>(myName : T?, myHasDollar : Boolean) {
{
$myName = myName
$myHasDollar = myHasDollar
}
private val myName : T?
private var myHasDollar : Boolean
private var myNullable : Boolean = true
open public fun getName() : T? {
return myName
}
class object {
open public fun init<T>(name : T?) : Identifier<T> {
val __ = Identifier<T>(name, false)
return __
}
}
}
fun box() : String {
var i3 : Identifier<*>? = Identifier.init<String?>("name")
System.out?.println("Hello, " + i3?.getName())
return "OK"
}
@@ -1,4 +1,7 @@
namespace Smoke
import std.io.*
fun main(args: Array<String>) {
print(args)
}
@@ -0,0 +1,11 @@
fun test() {
val str = ""
str
.length
str
?.length
}
@@ -0,0 +1,41 @@
JetFile: NewLinesValidOperations.jet
NAMESPACE
FUN
PsiElement(fun)('fun')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('test')
VALUE_PARAMETER_LIST
PsiElement(LPAR)('(')
PsiElement(RPAR)(')')
PsiWhiteSpace(' ')
BLOCK
PsiElement(LBRACE)('{')
PsiWhiteSpace('\n ')
PROPERTY
PsiElement(val)('val')
PsiWhiteSpace(' ')
PsiElement(IDENTIFIER)('str')
PsiWhiteSpace(' ')
PsiElement(EQ)('=')
PsiWhiteSpace(' ')
STRING_TEMPLATE
PsiElement(OPEN_QUOTE)('"')
PsiElement(CLOSING_QUOTE)('"')
PsiWhiteSpace('\n\n ')
DOT_QUALIFIED_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('str')
PsiWhiteSpace('\n\n ')
PsiElement(DOT)('.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('length')
PsiWhiteSpace('\n\n ')
SAFE_ACCESS_EXPRESSION
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('str')
PsiWhiteSpace('\n\n ')
PsiElement(SAFE_ACCESS)('?.')
REFERENCE_EXPRESSION
PsiElement(IDENTIFIER)('length')
PsiWhiteSpace('\n')
PsiElement(RBRACE)('}')