mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-23 01:48:18 +00:00
add support for array qualifiers in type identifiers
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
const { JavaType, WildcardType } = require('java-mti');
|
const { ArrayType, JavaType, WildcardType } = require('java-mti');
|
||||||
const { SourceMethod, SourceConstructor, SourceInitialiser } = require('./source-type');
|
const { SourceMethod, SourceConstructor, SourceInitialiser } = require('./source-type');
|
||||||
const ResolvedImport = require('./parsetypes/resolved-import');
|
const ResolvedImport = require('./parsetypes/resolved-import');
|
||||||
const { resolveTypeOrPackage, resolveNextTypeOrPackage } = require('./type-resolver');
|
const { resolveTypeOrPackage, resolveNextTypeOrPackage } = require('./type-resolver');
|
||||||
const { Token } = require('./tokenizer');
|
const { Token } = require('./tokenizer');
|
||||||
const { AnyType, ResolvedIdent } = require("./body-types");
|
const { AnyType } = require("./body-types");
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @typedef {SourceMethod|SourceConstructor|SourceInitialiser} SourceMC
|
* @typedef {SourceMethod|SourceConstructor|SourceInitialiser} SourceMC
|
||||||
@@ -40,7 +40,7 @@ function typeIdent(tokens, method, imports, typemap) {
|
|||||||
}
|
}
|
||||||
return AnyType.Instance;
|
return AnyType.Instance;
|
||||||
}
|
}
|
||||||
const { types, package_name } = resolveTypeOrPackage(tokens.current.value, method._owner, imports, typemap);
|
let { types, package_name } = resolveTypeOrPackage(tokens.current.value, method._owner, imports, typemap);
|
||||||
tokens.inc();
|
tokens.inc();
|
||||||
for (;;) {
|
for (;;) {
|
||||||
if (tokens.isValue('.')) {
|
if (tokens.isValue('.')) {
|
||||||
@@ -58,6 +58,19 @@ function typeIdent(tokens, method, imports, typemap) {
|
|||||||
}
|
}
|
||||||
tokens.expectValue('>');
|
tokens.expectValue('>');
|
||||||
}
|
}
|
||||||
|
} else if (tokens.isValue('[')) {
|
||||||
|
let arrdims = 0;
|
||||||
|
for(;;) {
|
||||||
|
arrdims++;
|
||||||
|
tokens.expectValue(']');
|
||||||
|
if (!tokens.isValue('[')) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!types[0]) {
|
||||||
|
types.push(AnyType.Instance);
|
||||||
|
}
|
||||||
|
types = types.map(t => new ArrayType(t, arrdims));
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user