# Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE.md file.

main.dart.patch: |
  // Test that a static field can be made an instance field

  class C {
  <<<< ["[instance] is null","v1","[instance.x] threw"]
    static int x;
  ==== ["[C.x] threw","v2"]
    int x;
  >>>>
  }

  var instance;

  main() {
    if (instance == null) {
      print('[instance] is null');
      instance = new C();
      C.x = 'v1';
    } else {
      instance.x = 'v2';
    }
    try {
      print(C.x);
    } catch (e) {
      print('[C.x] threw');
    }
    try {
      print(instance.x);
    } catch (e) {
      print('[instance.x] threw');
    }
  }
