// Formatted problems:
//
// pkg/front_end/testcases/tabs.dart:9:8: Error: Getter not found: 'one'.
// 	print(one);
// 	      ^^^
//
// pkg/front_end/testcases/tabs.dart:10:9: Error: Getter not found: 'two'.
// 		print(two);
// 		      ^^^
//
// pkg/front_end/testcases/tabs.dart:11:11: Error: Getter not found: 'three'.
// 		  print(three);
// 		        ^^^^^
//
// pkg/front_end/testcases/tabs.dart:12:12: Error: Getter not found: 'four'.
// 	   	print(four);
// 	   	      ^^^^
//
// pkg/front_end/testcases/tabs.dart:13:14: Error: Getter not found: 'five'.
// 	   	  print(five);
// 	   	        ^^^^

library;
import self as self;
import "dart:core" as core;

static method test() → dynamic {
  core::print(invalid-expression "pkg/front_end/testcases/tabs.dart:9:8: Error: Getter not found: 'one'.
\tprint(one);
\t      ^^^");
  core::print(invalid-expression "pkg/front_end/testcases/tabs.dart:10:9: Error: Getter not found: 'two'.
\t\tprint(two);
\t\t      ^^^");
  core::print(invalid-expression "pkg/front_end/testcases/tabs.dart:11:11: Error: Getter not found: 'three'.
\t\t  print(three);
\t\t        ^^^^^");
  core::print(invalid-expression "pkg/front_end/testcases/tabs.dart:12:12: Error: Getter not found: 'four'.
\t   \tprint(four);
\t   \t      ^^^^");
  core::print(invalid-expression "pkg/front_end/testcases/tabs.dart:13:14: Error: Getter not found: 'five'.
\t   \t  print(five);
\t   \t        ^^^^");
}
static method main() → dynamic {}
