mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 02:17:14 +00:00
Use TypeVariableInConstExpression in place of Unspecified
Change-Id: Ib0f902979c33e97fa46660f0c0a4e98b092c274c Reviewed-on: https://dart-review.googlesource.com/65240 Reviewed-by: Konstantin Shcheglov <scheglov@google.com> Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
parent
6927e30cac
commit
3dba24bda2
|
@ -250,6 +250,7 @@ const List<ErrorCode> errorCodeValues = const [
|
||||||
CompileTimeErrorCode.THIS_ACCESS_FROM_INITIALIZER,
|
CompileTimeErrorCode.THIS_ACCESS_FROM_INITIALIZER,
|
||||||
CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF,
|
CompileTimeErrorCode.TYPE_ALIAS_CANNOT_REFERENCE_ITSELF,
|
||||||
CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS,
|
CompileTimeErrorCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS,
|
||||||
|
CompileTimeErrorCode.TYPE_PARAMETER_IN_CONST_EXPRESSION,
|
||||||
CompileTimeErrorCode.TYPE_PARAMETER_ON_CONSTRUCTOR,
|
CompileTimeErrorCode.TYPE_PARAMETER_ON_CONSTRUCTOR,
|
||||||
CompileTimeErrorCode.UNDEFINED_ANNOTATION,
|
CompileTimeErrorCode.UNDEFINED_ANNOTATION,
|
||||||
CompileTimeErrorCode.UNDEFINED_CLASS,
|
CompileTimeErrorCode.UNDEFINED_CLASS,
|
||||||
|
|
|
@ -2474,6 +2474,10 @@ class CompileTimeErrorCode extends ErrorCode {
|
||||||
"Typedefs can't reference themselves directly or recursively via "
|
"Typedefs can't reference themselves directly or recursively via "
|
||||||
"another typedef.");
|
"another typedef.");
|
||||||
|
|
||||||
|
static const CompileTimeErrorCode TYPE_PARAMETER_IN_CONST_EXPRESSION =
|
||||||
|
const CompileTimeErrorCode.fromFasta(
|
||||||
|
'TYPE_PARAMETER_IN_CONST_EXPRESSION');
|
||||||
|
|
||||||
static const CompileTimeErrorCode TYPE_PARAMETER_ON_CONSTRUCTOR =
|
static const CompileTimeErrorCode TYPE_PARAMETER_ON_CONSTRUCTOR =
|
||||||
const CompileTimeErrorCode.fromFasta('TYPE_PARAMETER_ON_CONSTRUCTOR');
|
const CompileTimeErrorCode.fromFasta('TYPE_PARAMETER_ON_CONSTRUCTOR');
|
||||||
|
|
||||||
|
|
|
@ -6533,6 +6533,40 @@ Message _withArgumentsTypeVariableDuplicatedNameCause(String name) {
|
||||||
arguments: {'name': name});
|
arguments: {'name': name});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||||
|
const Template<
|
||||||
|
Message Function(
|
||||||
|
String name,
|
||||||
|
DartType
|
||||||
|
_type)> templateTypeVariableInConstExpression = const Template<
|
||||||
|
Message Function(String name, DartType _type)>(
|
||||||
|
messageTemplate:
|
||||||
|
r"""Type variable '#name' can't be used as a constant expression '#type'.""",
|
||||||
|
withArguments: _withArgumentsTypeVariableInConstExpression);
|
||||||
|
|
||||||
|
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||||
|
const Code<Message Function(String name, DartType _type)>
|
||||||
|
codeTypeVariableInConstExpression =
|
||||||
|
const Code<Message Function(String name, DartType _type)>(
|
||||||
|
"TypeVariableInConstExpression", templateTypeVariableInConstExpression,
|
||||||
|
analyzerCode: "TYPE_PARAMETER_IN_CONST_EXPRESSION",
|
||||||
|
dart2jsCode: "*fatal*",
|
||||||
|
severity: Severity.error);
|
||||||
|
|
||||||
|
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||||
|
Message _withArgumentsTypeVariableInConstExpression(
|
||||||
|
String name, DartType _type) {
|
||||||
|
NameSystem nameSystem = new NameSystem();
|
||||||
|
StringBuffer buffer = new StringBuffer();
|
||||||
|
new Printer(buffer, syntheticNames: nameSystem).writeNode(_type);
|
||||||
|
String type = '$buffer';
|
||||||
|
|
||||||
|
return new Message(codeTypeVariableInConstExpression,
|
||||||
|
message:
|
||||||
|
"""Type variable '${name}' can't be used as a constant expression '${type}'.""",
|
||||||
|
arguments: {'name': name, 'type': _type});
|
||||||
|
}
|
||||||
|
|
||||||
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
// DO NOT EDIT. THIS FILE IS GENERATED. SEE TOP OF FILE.
|
||||||
const Code<Null> codeTypeVariableInStaticContext =
|
const Code<Null> codeTypeVariableInStaticContext =
|
||||||
messageTypeVariableInStaticContext;
|
messageTypeVariableInStaticContext;
|
||||||
|
|
|
@ -4203,10 +4203,12 @@ abstract class BodyBuilder extends ScopeListener<JumpTarget>
|
||||||
}
|
}
|
||||||
return const InvalidType();
|
return const InvalidType();
|
||||||
} else if (constantContext != ConstantContext.none) {
|
} else if (constantContext != ConstantContext.none) {
|
||||||
deprecated_addCompileTimeError(
|
int length = type.parameter.name.length;
|
||||||
|
addCompileTimeError(
|
||||||
|
fasta.templateTypeVariableInConstExpression
|
||||||
|
.withArguments(type.parameter.name, type),
|
||||||
offset,
|
offset,
|
||||||
"Type variable '${type.parameter.name}' can't be used as a constant "
|
length);
|
||||||
"expression $type.");
|
|
||||||
}
|
}
|
||||||
return type;
|
return type;
|
||||||
}
|
}
|
||||||
|
|
|
@ -348,6 +348,7 @@ TypeArgumentMismatch/example: Fail
|
||||||
TypeArgumentsOnTypeVariable/script1: Fail
|
TypeArgumentsOnTypeVariable/script1: Fail
|
||||||
TypeNotFound/example: Fail
|
TypeNotFound/example: Fail
|
||||||
TypeVariableDuplicatedName/example: Fail
|
TypeVariableDuplicatedName/example: Fail
|
||||||
|
TypeVariableInConstExpression/example: Fail
|
||||||
TypeVariableInStaticContext/example: Fail
|
TypeVariableInStaticContext/example: Fail
|
||||||
TypeVariableSameNameAsEnclosing/example: Fail
|
TypeVariableSameNameAsEnclosing/example: Fail
|
||||||
TypedefNotFunction/example: Fail
|
TypedefNotFunction/example: Fail
|
||||||
|
|
|
@ -2147,6 +2147,12 @@ FinalInstanceVariableAlreadyInitializedCause:
|
||||||
template: "'#name' was initialized here."
|
template: "'#name' was initialized here."
|
||||||
severity: CONTEXT
|
severity: CONTEXT
|
||||||
|
|
||||||
|
TypeVariableInConstExpression:
|
||||||
|
template: "Type variable '#name' can't be used as a constant expression '#type'."
|
||||||
|
severity: ERROR
|
||||||
|
analyzerCode: TYPE_PARAMETER_IN_CONST_EXPRESSION
|
||||||
|
dart2jsCode: "*fatal*"
|
||||||
|
|
||||||
TypeVariableInStaticContext:
|
TypeVariableInStaticContext:
|
||||||
template: "Type variables can't be used in static members."
|
template: "Type variables can't be used in static members."
|
||||||
severity: ERROR_LEGACY_WARNING
|
severity: ERROR_LEGACY_WARNING
|
||||||
|
|
Loading…
Reference in a new issue