From 26e54bba3714b72eadb89b44082dbf898e68b480 Mon Sep 17 00:00:00 2001 From: Dave Holoway Date: Tue, 16 Jun 2020 18:21:14 +0100 Subject: [PATCH] update typemap declarations to use CEIType instead of JavaType --- langserver/java/body-parser3.js | 82 +++++++++---------- langserver/java/parsetypes/resolved-import.js | 4 +- langserver/java/source-type.js | 2 +- langserver/java/type-resolver.js | 6 +- langserver/java/typeident.js | 10 +-- langserver/server.js | 10 +-- 6 files changed, 57 insertions(+), 57 deletions(-) diff --git a/langserver/java/body-parser3.js b/langserver/java/body-parser3.js index 7636aaa..cd8ddcc 100644 --- a/langserver/java/body-parser3.js +++ b/langserver/java/body-parser3.js @@ -46,7 +46,7 @@ function flattenBlocks(blocks, isMethod) { /** * @param {SourceMethod | SourceConstructor | SourceInitialiser} method * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function parseBody(method, imports, typemap) { const body = method.body; @@ -149,7 +149,7 @@ function extractSourceTypes(tokens, typemap) { /** * @param {string} source - * @param {Map} typemap + * @param {Map} typemap */ function parse(source, typemap) { const unit = new SourceUnit(); @@ -190,7 +190,7 @@ function parse(source, typemap) { /** * @param {TokenList} tokens * @param {SourceUnit} unit - * @param {Map} typemap + * @param {Map} typemap */ function parseUnit(tokens, unit, typemap) { let package_name = ''; @@ -282,7 +282,7 @@ function packageDeclaration(tokens) { /** * @param {TokenList} tokens - * @param {Map} typemap + * @param {Map} typemap */ function importDeclaration(tokens, typemap) { tokens.mark(); @@ -332,7 +332,7 @@ function addLocals(tokens, mdecls, new_locals) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @returns {ResolvedIdent|Local[]|Statement} */ function statement(tokens, mdecls, method, imports, typemap) { @@ -616,7 +616,7 @@ class ArrayIndexExpression extends Expression { * @param {string} typeKind * @param {{types:SourceType[]}} owner * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function sourceType(modifiers, tokens, scope_or_pkgname, typeKind, owner, imports, typemap) { let package_name, scope; @@ -660,7 +660,7 @@ function sourceType(modifiers, tokens, scope_or_pkgname, typeKind, owner, import * @param {TokenList} tokens * @param {{types:SourceType[]}} owner * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function typeBody(type, tokens, owner, imports, typemap) { for (;;) { @@ -710,7 +710,7 @@ function typeBody(type, tokens, owner, imports, typemap) { * @param {SourceType} type * @param {TokenList} tokens * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function fmc(modifiers, annotations, type_vars, type, tokens, imports, typemap) { let decl_type_ident = typeIdent(tokens, type, imports, typemap, { no_array_qualifiers: false, type_vars }); @@ -811,7 +811,7 @@ function annotation(tokens, scope, imports, typemap) { * @param {Token} kind_token * @param {TokenList} tokens * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function typeDeclaration(package_name, scope, modifiers, typeKind, kind_token, tokens, imports, typemap) { let name = tokens.inc(); @@ -843,7 +843,7 @@ function typeDeclaration(package_name, scope, modifiers, typeKind, kind_token, t * @param {TokenList} tokens * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function typeVariableList(owner, tokens, scope, imports, typemap) { tokens.expectValue('<'); @@ -885,7 +885,7 @@ function typeVariableList(owner, tokens, scope, imports, typemap) { * @param {SourceType} owner * @param {TokenList} tokens * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function methodDeclaration(type_vars, owner, tokens, imports, typemap) { tokens.expectValue('('); @@ -924,7 +924,7 @@ function methodDeclaration(type_vars, owner, tokens, imports, typemap) { * @param {SourceType} owner * @param {TokenList} tokens * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function parameterDeclaration(type_vars, owner, tokens, imports, typemap) { const modifiers = []; @@ -957,7 +957,7 @@ function parameterDeclaration(type_vars, owner, tokens, imports, typemap) { * @param {SourceType} type * @param {TokenList} tokens * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function enumValueList(type, tokens, imports, typemap) { for (;;) { @@ -1002,7 +1002,7 @@ function enumValueList(type, tokens, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function statementBlock(tokens, mdecls, method, imports, typemap) { const b = new Block(); @@ -1031,7 +1031,7 @@ function semicolon(tokens) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function statementKeyword(tokens, mdecls, method, imports, typemap) { let s; @@ -1134,7 +1134,7 @@ function statementKeyword(tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function bracketedTest(tokens, mdecls, scope, imports, typemap) { tokens.expectValue('('); @@ -1148,7 +1148,7 @@ function bracketedTest(tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function nonVarDeclStatement(tokens, mdecls, method, imports, typemap) { const s = statement(tokens, mdecls, method, imports, typemap); @@ -1164,7 +1164,7 @@ function nonVarDeclStatement(tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function forStatement(s, tokens, mdecls, method, imports, typemap) { tokens.expectValue('('); @@ -1200,7 +1200,7 @@ function forStatement(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function enhancedFor(s, tokens, mdecls, method, imports, typemap) { const colon = tokens.current; @@ -1225,7 +1225,7 @@ function enhancedFor(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function synchronizedStatement(s, tokens, mdecls, method, imports, typemap) { tokens.expectValue('('); @@ -1240,7 +1240,7 @@ function synchronizedStatement(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function assertStatement(s, tokens, mdecls, method, imports, typemap) { s.expression = expression(tokens, mdecls, method, imports, typemap); @@ -1255,7 +1255,7 @@ function assertStatement(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function catchFinallyBlocks(s, tokens, mdecls, method, imports, typemap) { for (;;) { @@ -1320,7 +1320,7 @@ function catchFinallyBlocks(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function catchType(tokens, mdecls, method, imports, typemap) { const t = qualifiedTerm(tokens, mdecls, method, imports, typemap); @@ -1337,7 +1337,7 @@ function catchType(tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function switchBlock(s, tokens, mdecls, method, imports, typemap) { tokens.expectValue('('); @@ -1361,7 +1361,7 @@ function switchBlock(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function caseBlock(s, tokens, mdecls, method, imports, typemap) { const case_start_idx = s.cases.length; @@ -1386,7 +1386,7 @@ function caseBlock(s, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function caseExpressionList(cases, tokens, mdecls, method, imports, typemap) { let c = caseExpression(cases, tokens, mdecls, method, imports, typemap); @@ -1405,7 +1405,7 @@ function caseExpressionList(cases, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {SourceMC} method * @param {ResolvedImport[]} imports -* @param {Map} typemap +* @param {Map} typemap */ function caseExpression(cases, tokens, mdecls, method, imports, typemap) { /** @type {boolean|ResolvedIdent} */ @@ -1433,7 +1433,7 @@ function caseExpression(cases, tokens, mdecls, method, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function var_ident_list(mods, type, first_ident, tokens, mdecls, scope, imports, typemap) { const new_locals = []; @@ -1476,7 +1476,7 @@ function var_ident_list(mods, type, first_ident, tokens, mdecls, scope, imports, * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @returns {ResolvedIdent|Local[]} */ function expression_or_var_decl(tokens, mdecls, scope, imports, typemap) { @@ -1497,7 +1497,7 @@ function expression_or_var_decl(tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @returns {ResolvedIdent[]|Local[]} */ function expression_list_or_var_decl(tokens, mdecls, scope, imports, typemap) { @@ -1539,7 +1539,7 @@ const operator_precedences = { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function expression(tokens, mdecls, scope, imports, typemap, precedence_stack = [13]) { tokens.mark(); @@ -1582,7 +1582,7 @@ function expression(tokens, mdecls, scope, imports, typemap, precedence_stack = * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function qualifiedTerm(tokens, mdecls, scope, imports, typemap) { let matches = rootTerm(tokens, mdecls, scope, imports, typemap); @@ -1635,7 +1635,7 @@ function isCastExpression(token, matches) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @returns {ResolvedIdent} */ function rootTerm(tokens, mdecls, scope, imports, typemap) { @@ -1729,7 +1729,7 @@ function rootTerm(tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function newTerm(tokens, mdecls, scope, imports, typemap) { tokens.expectValue('new'); @@ -1785,7 +1785,7 @@ function newTerm(tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @param {{isArrayLiteral: boolean}} [opts] */ function expressionList(tokens, mdecls, scope, imports, typemap, opts) { @@ -1843,7 +1843,7 @@ function getTypeInheritanceList(type) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function qualifiers(matches, tokens, mdecls, scope, imports, typemap) { for (;;) { @@ -1879,7 +1879,7 @@ function qualifiers(matches, tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function memberQualifier(matches, tokens, mdecls, scope, imports, typemap) { tokens.expectValue('.'); @@ -1916,7 +1916,7 @@ function memberQualifier(matches, tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function arrayQualifiers(matches, tokens, mdecls, scope, imports, typemap) { while (tokens.isValue('[')) { @@ -1941,7 +1941,7 @@ function arrayQualifiers(matches, tokens, mdecls, scope, imports, typemap) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function methodCallQualifier(matches, tokens, mdecls, scope, imports, typemap) { let args = []; @@ -1988,7 +1988,7 @@ function arrayTypeExpression(matches) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function resolveIdentifier(tokens, mdecls, scope, imports, typemap) { const ident = tokens.current.value; @@ -2016,7 +2016,7 @@ function checkIdentifierFound(tokens, ident, matches) { * @param {MethodDeclarations} mdecls * @param {Scope} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function findIdentifier(ident, mdecls, scope, imports, typemap) { const matches = new ResolvedIdent(ident); diff --git a/langserver/java/parsetypes/resolved-import.js b/langserver/java/parsetypes/resolved-import.js index df41f08..9ee8052 100644 --- a/langserver/java/parsetypes/resolved-import.js +++ b/langserver/java/parsetypes/resolved-import.js @@ -1,5 +1,5 @@ /** - * @typedef {import('java-mti').JavaType} JavaType + * @typedef {import('java-mti').CEIType} CEIType */ const { ImportBlock } = require('../parser9'); @@ -14,7 +14,7 @@ const { ImportBlock } = require('../parser9'); /** * @param {ImportBlock} import_decl * @param {RegExpMatchArray} matches - * @param {Map} typemap + * @param {Map} typemap * @param {'owner-package'|'import'|'implicit-import'} import_kind */ constructor(import_decl, matches, typemap, import_kind) { diff --git a/langserver/java/source-type.js b/langserver/java/source-type.js index 3b3ad39..ae23713 100644 --- a/langserver/java/source-type.js +++ b/langserver/java/source-type.js @@ -40,7 +40,7 @@ class SourceType extends CEIType { * @param {ModuleBlock} mod * @param {TypeDeclBlock} decl * @param {string} qualified_type_name qualified $-separated type name - * @param {Map} typemap + * @param {Map} typemap */ constructor(mod, decl, qualified_type_name, typemap) { super(decl.shortSignature, decl.kind(), mapmods(decl), decl.docs); diff --git a/langserver/java/type-resolver.js b/langserver/java/type-resolver.js index 12cc449..54ec2ae 100644 --- a/langserver/java/type-resolver.js +++ b/langserver/java/type-resolver.js @@ -1,5 +1,5 @@ /** - * @typedef {Map} TypeMap + * @typedef {Map} TypeMap */ const { JavaType, PrimitiveType, ArrayType, CEIType, MethodBase, TypeVariable } = require('java-mti'); const { ResolvedImport } = require('./import-resolver'); @@ -263,7 +263,7 @@ function resolveTypeIdents(types, fully_qualified_scope, resolved_imports, typem * @param {TypeVariable[]} type_variables * @param {CEIType|MethodBase} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {TypeMap} typemap */ function resolveTypeOrPackage(ident, type_variables, scope, imports, typemap) { const types = []; @@ -344,7 +344,7 @@ function resolveTypeOrPackage(ident, type_variables, scope, imports, typemap) { * @param {string} ident * @param {JavaType[]} outer_types * @param {string} outer_package_name - * @param {Map} typemap + * @param {TypeMap} typemap */ function resolveNextTypeOrPackage(ident, outer_types, outer_package_name, typemap) { const types = []; diff --git a/langserver/java/typeident.js b/langserver/java/typeident.js index acee60f..bf4bbb9 100644 --- a/langserver/java/typeident.js +++ b/langserver/java/typeident.js @@ -14,7 +14,7 @@ const { AnyType } = require("./body-types"); * @param {TokenList} tokens * @param {CEIType|MethodBase} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function typeIdentList(tokens, scope, imports, typemap) { let type = typeIdent(tokens, scope, imports, typemap); @@ -31,7 +31,7 @@ function typeIdentList(tokens, scope, imports, typemap) { * @param {TokenList} tokens * @param {CEIType|MethodBase} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @param {{no_array_qualifiers:boolean, type_vars:TypeVariable[]}} [opts] */ function typeIdent(tokens, scope, imports, typemap, opts) { @@ -44,7 +44,7 @@ function typeIdent(tokens, scope, imports, typemap, opts) { * @param {TokenList} tokens * @param {CEIType|MethodBase} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @param {{no_array_qualifiers:boolean, type_vars: TypeVariable[]}} [opts] */ function singleTypeIdent(tokens, scope, imports, typemap, opts) { @@ -107,7 +107,7 @@ function singleTypeIdent(tokens, scope, imports, typemap, opts) { * @param {JavaType[]} types * @param {CEIType|MethodBase} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap */ function genericTypeArgs(tokens, types, scope, imports, typemap) { if (tokens.isValue('>')) { @@ -144,7 +144,7 @@ function genericTypeArgs(tokens, types, scope, imports, typemap) { * @param {TokenList} tokens * @param {CEIType|MethodBase} scope * @param {ResolvedImport[]} imports - * @param {Map} typemap + * @param {Map} typemap * @returns {WildcardType} */ function wildcardTypeArgument(tokens, scope, imports, typemap) { diff --git a/langserver/server.js b/langserver/server.js index e04da90..2e92802 100644 --- a/langserver/server.js +++ b/langserver/server.js @@ -17,7 +17,7 @@ const { const { TextDocument } = require('vscode-languageserver-textdocument'); -const { loadAndroidLibrary, JavaType } = require('java-mti'); +const { loadAndroidLibrary, CEIType } = require('java-mti'); const { ParseProblem } = require('./java/parser'); const { parse } = require('./java/body-parser3'); @@ -25,7 +25,7 @@ const { SourceUnit } = require('./java/source-type'); const { validate } = require('./java/validater'); /** - * @typedef {Map} AndroidLibrary + * @typedef {Map} AndroidLibrary * @type {AndroidLibrary|Promise} */ let androidLibrary = null; @@ -43,7 +43,7 @@ let connection = createConnection(ProposedFeatures.all); ///** @type {LiveParseInfo[]} */ //const liveParsers = []; -/** @type {{content: string, uri: string, result: {unit:SourceUnit, problems:*[]}, typemap:Map, positionAt:(n) => Position, indexAt:(p:Position) => number}} */ +/** @type {{content: string, uri: string, result: {unit:SourceUnit, problems:*[]}, typemap:Map, positionAt:(n) => Position, indexAt:(p:Position) => number}} */ let parsed = null; function reparse(uri, content) { @@ -149,8 +149,8 @@ let hasDiagnosticRelatedInformationCapability = false; connection.onInitialize((params) => { console.time('android-library-load') androidLibrary = loadAndroidLibrary('android-25').then(lib => { - console.timeEnd('android-library-load') - return androidLibrary = lib; + console.timeEnd('android-library-load') + return androidLibrary = lib; }, err => { console.log(`android library load failed: ${err.message}`); return androidLibrary = new Map();