Skip to content

Instantly share code, notes, and snippets.

@aliceklipper
Last active April 12, 2017 11:54
Show Gist options
  • Save aliceklipper/f9d73e3d2d7fef91278b8c34b593a525 to your computer and use it in GitHub Desktop.
Save aliceklipper/f9d73e3d2d7fef91278b8c34b593a525 to your computer and use it in GitHub Desktop.
./fuck.js:3:1,5:3: [type: {|ha: string|}]
./fuck.js:7:10-16: (base: This) => This
./fuck.js:7:19-22: This
./fuck.js:8:12,12:5: This
./fuck.js:8:26-29: This
./fuck.js:9:22-49: {|ha: string|}
./fuck.js:10:13-19: {+_exception: (...data: Array<any>) => void, +assert: (condition: mixed, ...data: Array<any>) => void, +clear: () => void, +count: (label: string) => void, +debug: (...data: Array<any>) => void, +dir: (...data: Array<any>) => void, +dirxml: (...data: Array<any>) => void, +error: (...data: Array<any>) => void, +group: (...data: Array<any>) => void, +groupCollapsed: (...data: Array<any>) => void, +groupEnd: () => void, +info: (...data: Array<any>) => void, +log: (...data: Array<any>) => void, +profile: (name: string) => void, +profileEnd: () => void, +table: (tabularData: {[key: string]: any,} | Array<{[key: string]: any,}> | Array<Array<any>>) => void, +time: (label: string) => void, +timeEnd: (label: string) => void, +timeStamp: (label?: string) => void, +trace: (...data: Array<any>) => void, +warn: (...data: Array<any>) => void}
./fuck.js:10:13-32: void
./fuck.js:10:25-28: {|ha: string|}
./fuck.js:10:25-31: string
./fuck.js:15:10-13: (base: This) => This
./fuck.js:15:16-19: This
./fuck.js:16:12,20:5: This
./fuck.js:16:26-32: (base: This) => This
./fuck.js:16:26-38: This
./fuck.js:16:34-37: This
./fuck.js:18:13-19: {+_exception: (...data: Array<any>) => void, +assert: (condition: mixed, ...data: Array<any>) => void, +clear: () => void, +count: (label: string) => void, +debug: (...data: Array<any>) => void, +dir: (...data: Array<any>) => void, +dirxml: (...data: Array<any>) => void, +error: (...data: Array<any>) => void, +group: (...data: Array<any>) => void, +groupCollapsed: (...data: Array<any>) => void, +groupEnd: () => void, +info: (...data: Array<any>) => void, +log: (...data: Array<any>) => void, +profile: (name: string) => void, +profileEnd: () => void, +table: (tabularData: {[key: string]: any,} | Array<{[key: string]: any,}> | Array<Array<any>>) => void, +time: (label: string) => void, +timeEnd: (label: string) => void, +timeStamp: (label?: string) => void, +trace: (...data: Array<any>) => void, +warn: (...data: Array<any>) => void}
./fuck.js:18:13-32: void
./fuck.js:18:25-31: string
./fuck.js:23:10-13: (base: This) => This
./fuck.js:23:16-19: This
./fuck.js:24:12,28:5: This
./fuck.js:24:26-32: (base: This) => This
./fuck.js:24:26-38: This
./fuck.js:24:34-37: This
./fuck.js:26:13-19: {+_exception: (...data: Array<any>) => void, +assert: (condition: mixed, ...data: Array<any>) => void, +clear: () => void, +count: (label: string) => void, +debug: (...data: Array<any>) => void, +dir: (...data: Array<any>) => void, +dirxml: (...data: Array<any>) => void, +error: (...data: Array<any>) => void, +group: (...data: Array<any>) => void, +groupCollapsed: (...data: Array<any>) => void, +groupEnd: () => void, +info: (...data: Array<any>) => void, +log: (...data: Array<any>) => void, +profile: (name: string) => void, +profileEnd: () => void, +table: (tabularData: {[key: string]: any,} | Array<{[key: string]: any,}> | Array<Array<any>>) => void, +time: (label: string) => void, +timeEnd: (label: string) => void, +timeStamp: (label?: string) => void, +trace: (...data: Array<any>) => void, +warn: (...data: Array<any>) => void}
./fuck.js:26:13-32: void
./fuck.js:26:25-31: string
./fuck.js:31:10-16: (base: This) => This
./fuck.js:31:19-22: This
./fuck.js:32:12,37:5: This
./fuck.js:32:26-29: (base: This) => This
./fuck.js:32:26-41: empty
./fuck.js:32:31-34: (base: This) => This
./fuck.js:32:31-40: This
./fuck.js:32:36-39: This
./fuck.js:34:13-31: empty
./fuck.js:35:13-19: {+_exception: (...data: Array<any>) => void, +assert: (condition: mixed, ...data: Array<any>) => void, +clear: () => void, +count: (label: string) => void, +debug: (...data: Array<any>) => void, +dir: (...data: Array<any>) => void, +dirxml: (...data: Array<any>) => void, +error: (...data: Array<any>) => void, +group: (...data: Array<any>) => void, +groupCollapsed: (...data: Array<any>) => void, +groupEnd: () => void, +info: (...data: Array<any>) => void, +log: (...data: Array<any>) => void, +profile: (name: string) => void, +profileEnd: () => void, +table: (tabularData: {[key: string]: any,} | Array<{[key: string]: any,}> | Array<Array<any>>) => void, +time: (label: string) => void, +timeEnd: (label: string) => void, +timeStamp: (label?: string) => void, +trace: (...data: Array<any>) => void, +warn: (...data: Array<any>) => void}
./fuck.js:35:13-40: void
./fuck.js:35:25-39: string
./fuck.js:40:7-12: This
./fuck.js:40:16-22: (base: This) => This
./fuck.js:40:16-32: This
./fuck.js:40:24-31: This
./fuck.js:42:7-12: empty
./fuck.js:42:16-27: empty
./fuck.js:42:20-25: This
./fuck.js:44:1-6: empty
./fuck.js:44:1-16: empty
./fuck.js:45:1-6: empty
./fuck.js:45:1-16: empty
./fuck.js:46:1-6: empty
./fuck.js:46:1-20: empty
// @flow
type TYaVistrelilSebeVNogu = {|
ha : string;
|};
function MAnimal (base) {
return class extends base {
sayAnything (what : TYaVistrelilSebeVNogu) {
console.log(what.ha);
}
};
}
function MKit (base) {
return class extends MAnimal(base) {
sayMeow () {
console.log('Meow.');
}
};
}
function MPes (base) {
return class extends MAnimal(base) {
sayWoof () {
console.log('Woof.');
}
};
}
function MKitPes (base) {
return class extends MKit(MPes(base)) {
sayAnything () {
super.sayAnything();
console.log('I am Kit-Pes!');
}
}
}
const KitPes = MKitPes(class {});
const kitPes = new KitPes();
kitPes.sayMeow();
kitPes.sayWoof();
kitPes.sayAnything();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment