mirror of
https://github.com/adelphes/android-dev-ext.git
synced 2025-12-23 18:08:29 +00:00
58 lines
1.1 KiB
JavaScript
58 lines
1.1 KiB
JavaScript
const { JavaType, Method } = require('java-mti');
|
|
const { Expression } = require('./expressiontypes/Expression');
|
|
|
|
/**
|
|
* AnyType is a special type that's used to fill in types that are missing.
|
|
* To prevent cascading errors, AnyType should be fully assign/cast/type-compatible
|
|
* with any other type
|
|
*/
|
|
class AnyType extends JavaType {
|
|
/**
|
|
*
|
|
* @param {String} label
|
|
*/
|
|
constructor(label) {
|
|
super("class", [], '');
|
|
super.simpleTypeName = label || '<unknown type>';
|
|
}
|
|
|
|
static Instance = new AnyType('');
|
|
|
|
get rawTypeSignature() {
|
|
return 'U';
|
|
}
|
|
|
|
get typeSignature() {
|
|
return 'U';
|
|
}
|
|
}
|
|
|
|
class AnyMethod extends Method {
|
|
/**
|
|
* @param {string} name
|
|
*/
|
|
constructor(name) {
|
|
super(null, name, [], '');
|
|
}
|
|
|
|
get returnType() {
|
|
return AnyType.Instance;
|
|
}
|
|
}
|
|
|
|
class AnyValue extends Expression {
|
|
/**
|
|
*
|
|
* @param {String} label
|
|
*/
|
|
constructor(label) {
|
|
super();
|
|
this.label = label;
|
|
this.type = AnyType.Instance;
|
|
}
|
|
}
|
|
|
|
exports.AnyMethod = AnyMethod;
|
|
exports.AnyType = AnyType;
|
|
exports.AnyValue = AnyValue;
|