Files
swift-mirror/test/properties.swift
Doug Gregor 6ce55acfc4 Parse getters and setters for variables.
Swift SVN r1408
2012-04-12 23:59:53 +00:00

64 lines
1.6 KiB
Swift

// RUN: %swift %s -verify
struct X { }
var _x : X;
// Basic parsing
var x1 : X {
get { return _x; }
set { _x = value; }
}
var x2 : X {
set (val) { _x = val; }
get { return _x; }
}
var x3 : X {
get { return _x; }
}
// Parsing problems
// FIXME: Redundant error below
var x4 { // expected-error{{variable with getter/setter must have an explicit type}} expected-error{{cannot infer a type for this pattern}}
get { return _x; }
}
var (x5 : int) { // expected-error{{getter/setter can only be defined for a single variable}}
get { return _x; }
}
var x6 : X {
get { return _x; } // expected-note{{previous definition of getter is here}}
set { _x = value; } // expected-note{{previous definition of setter is here}}
get { return _x; } // expected-error{{duplicate definition of getter for 'x6'}}
set (val) { _x = val; } // expected-error{{duplicate definition of setter for 'x6'}}
}
var x7 : X {
get blah wibble // expected-error{{expected '{' to start getter definition}}
}
var x8 : X {
set blah wibble // expected-error{{expected '{' to start setter definition}}
}
var x9 : X {
set ( ) {} // expected-error{{empty parameter list is unnecessary for setter}}
get ( ) {} // expected-error{{empty parameter list is unnecessary for getter}}
}
var x10 : X {
set ( : ) {} // expected-error{{expected the name of the setter value}}
get {}
wonka // expected-error{{expected 'get' or 'set' to define variable access}}
}
var x11 : X {
set {} // expected-error{{variable with a setter must also have a getter}}
}
var x12 : X { // expected-error{{variable with getter/setter cannot have an initializer}}
get {}
} = X()