Files
swift-mirror/test/expr/primary/literal/context.swift
Doug Gregor ab31f08848 [Parser] Disambiguate between object literals and collection literals.
Now that we have expressions that start with #, the [# introducer for
object literals is no longer guaranteed to indicate an object
literal. For example:

    [#line, #column]

is an array literal and

    [#line : #column]

is a dictionary literal. Use additional lookahead in the parser to
disambiguate these cases from object literals. Fixes
rdar://problem/24533081.
2016-02-05 17:14:20 -08:00

25 lines
533 B
Swift

// RUN: %target-parse-verify-swift
// Test "context" literals, #file, #line, #column, etc.
func requireInt(x: Int) { }
func requireString(s: String) { }
func testContextLiterals() {
let file = #file
requireString(file)
let line = #line
requireInt(line)
let column = #column
requireInt(column)
let function = #function
requireString(function)
}
// Disambiguate between collection literals and object literals.
func collectionLiteralDisambiguation() {
_ = [#line]
_ = [#line, #column]
_ = [#line : #column]
}