File: Main.hx

package info (click to toggle)
haxe 1%3A4.1.5-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 40,556 kB
  • sloc: ml: 125,171; ansic: 2,408; makefile: 436; java: 362; cs: 323; cpp: 318; python: 316; sh: 75; objc: 64; php: 39; xml: 30; javascript: 11
file content (18 lines) | stat: -rw-r--r-- 440 bytes parent folder | download | duplicates (6)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Main {
	static function test() {
		var t = haxe.macro.Context.getType("A");
		function fail(msg) {
			Sys.println(msg);
			Sys.exit(1);
		}
		switch (t) {
			case TAbstract(a, _):
				var hasTestMeta = Lambda.exists(a.get().impl.get().meta.get(), function(m) return m.name == ":test");
				if (!hasTestMeta) {
					fail("Abstract implementation class has no @:test metadata");
				}
			case _:
				fail("Should be abstract");
		}
	}
}