demo/typescript.js
function getSymbolKind(symbol, location) {
            var flags = symbol.getFlags();
            if (flags & 32 /* Class */)
                return ts.getDeclarationOfKind(symbol, 186 /* ClassExpression */) ?
                    ScriptElementKind.localClassElement : ScriptElementKind.classElement;
            if (flags & 384 /* Enum */)
                return ScriptElementKind.enumElement;
            if (flags & 524288 /* TypeAlias */)
                return ScriptElementKind.typeElement;
            if (flags & 64 /* Interface */)
                return ScriptElementKind.interfaceElement;
            if (flags & 262144 /* TypeParameter */)
                return ScriptElementKind.typeParameterElement;
            var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, location);
            if (result === ScriptElementKind.unknown) {
                if (flags & 262144 /* TypeParameter */)
                    return ScriptElementKind.typeParameterElement;
                if (flags & 8 /* EnumMember */)
                    return ScriptElementKind.variableElement;
                if (flags & 8388608 /* Alias */)
                    return ScriptElementKind.alias;
                if (flags & 1536 /* Module */)
                    return ScriptElementKind.moduleElement;
            }
            return result;
        }
function getSymbolKind(symbol, location) {
            var flags = symbol.getFlags();
            if (flags & 32 /* Class */)
                return ts.getDeclarationOfKind(symbol, 186 /* ClassExpression */) ?
                    ScriptElementKind.localClassElement : ScriptElementKind.classElement;
            if (flags & 384 /* Enum */)
                return ScriptElementKind.enumElement;
            if (flags & 524288 /* TypeAlias */)
                return ScriptElementKind.typeElement;
            if (flags & 64 /* Interface */)
                return ScriptElementKind.interfaceElement;
            if (flags & 262144 /* TypeParameter */)
                return ScriptElementKind.typeParameterElement;
            var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags, location);
            if (result === ScriptElementKind.unknown) {
                if (flags & 262144 /* TypeParameter */)
                    return ScriptElementKind.typeParameterElement;
                if (flags & 8 /* EnumMember */)
                    return ScriptElementKind.variableElement;
                if (flags & 8388608 /* Alias */)
                    return ScriptElementKind.alias;
                if (flags & 1536 /* Module */)
                    return ScriptElementKind.moduleElement;
            }
            return result;
        }
function getSymbolKind ( symbol , location ) { var flags = symbol . getFlags ( ) ; if ( flags & 32 /* Class */ ) return ts . getDeclarationOfKind ( symbol , 186 /* ClassExpression */ ) ? ScriptElementKind . localClassElement : ScriptElementKind . classElement ; if ( flags & 384 /* Enum */ ) return ScriptElementKind . enumElement ; if ( flags & 524288 /* TypeAlias */ ) return ScriptElementKind . typeElement ; if ( flags & 64 /* Interface */ ) return ScriptElementKind . interfaceElement ; if ( flags & 262144 /* TypeParameter */ ) return ScriptElementKind . typeParameterElement ; var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar ( symbol , flags , location ) ; if ( result === ScriptElementKind . unknown ) { if ( flags & 262144 /* TypeParameter */ ) return ScriptElementKind . typeParameterElement ; if ( flags & 8 /* EnumMember */ ) return ScriptElementKind . variableElement ; if ( flags & 8388608 /* Alias */ ) return ScriptElementKind . alias ; if ( flags & 1536 /* Module */ ) return ScriptElementKind . moduleElement ; } return result ; }
TODO(drosen): use contextual SemanticMeaning.
TODO ( drosen ) : use contextual SemanticMeaning .