# 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 instance field can be made static

  class C {
  <<<< {"messages":[],"hasCompileTimeError":1}
    String x;
  ==== ["v2","[instance.x] threw"]
    static String x;
  >>>>
  }

  dynamic instance;

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