Friday, January 20, 2012

Dart language spec v0.07 now available

Posted by Kathy Walrath

Version 0.07 of the Dart language spec is now available.

Changes include:
  • 5: Top level variable initializers must be constant. 
  • 7: Added abstract modifier to grammar. 
  • 7, 7.6, 7.7, 10.13.3,10.28: Superclass static members are not in scope in subclasses, and do not conflict with subclass members. 
  • 7.1.2: []= must return void. Operator call added to support function emulation. Removed operator >>>. Made explicit restriction on methods named call or negate. 
  • 10.1: Added !e as constant expression. Clarified what happens if evaluation of a constant fails. 
  • 10.7: Map keys need not be constants. However, they are always string literals. 
  • 10.9: State restrictions on use of this. 
  • 10.10, 10.10.1: Rules for bounds checking of constructor arguments when calling default constructors for interfaces refined. 
  • 10.14.1: Revised semantics to account for function emulation. 
  • 10.14.2: Revised semantics to account for function emulation. 
  • 10.14.3: Factory constructors cannot contain super invocations. Revised semantics to account for function emulation. 
  • 10.16: Specified assignment involving []= operator. 
  • 10.16.1: Removed operator >>>. 
  • 10.22: Removed operator >>>. 
  • 10.26: Postfix -- operator specified. Behavior of postfix operations on subscripted expressions specified. 
  • 10.28: Added built-in identifier call. Banned use of built-in identifiers as types made other uses warnings. 
  • 10.29: Moved specification of test that type arguments match generic type to 13.2. 
  • 11.8: Corrected evaluation of case clauses so that case expression is the receiver of ==. Revised specification to correctly deal with blank statements in case clauses. 
  • 11.15: Fixed bug in assert specification that could lead to puzzlers. 
  • 13.2: Consolidated definition of malformed types. 
  • 13.5: Revised semantics to account for function emulation.