|
@@ -940,6 +940,7 @@ type
|
|
|
Procedure TestHint_ElementHintsMsg;
|
|
|
Procedure TestHint_ElementHintsAlias;
|
|
|
Procedure TestHint_ElementHints_WarnOff_SymbolDeprecated;
|
|
|
+ Procedure TestHint_UsesHints;
|
|
|
Procedure TestHint_Garbage;
|
|
|
|
|
|
// helpers
|
|
@@ -17207,12 +17208,14 @@ begin
|
|
|
' TPlatform = longint platform;',
|
|
|
' TExperimental = longint experimental;',
|
|
|
' TUnimplemented = longint unimplemented;',
|
|
|
+ ' TExperimentalPlatform = boolean experimental platform;',
|
|
|
'var',
|
|
|
' vDeprecated: TDeprecated;',
|
|
|
' vLibrary: TLibrary;',
|
|
|
' vPlatform: TPlatform;',
|
|
|
' vExperimental: TExperimental;',
|
|
|
' vUnimplemented: TUnimplemented;',
|
|
|
+ ' vExperimentalPlatform: TExperimentalPlatform;',
|
|
|
'begin',
|
|
|
'']);
|
|
|
ParseProgram;
|
|
@@ -17221,6 +17224,8 @@ begin
|
|
|
CheckResolverHint(mtWarning,nSymbolXIsNotPortable,'Symbol "TPlatform" is not portable');
|
|
|
CheckResolverHint(mtWarning,nSymbolXIsExperimental,'Symbol "TExperimental" is experimental');
|
|
|
CheckResolverHint(mtWarning,nSymbolXIsNotImplemented,'Symbol "TUnimplemented" is not implemented');
|
|
|
+ CheckResolverHint(mtWarning,nSymbolXIsExperimental,'Symbol "TExperimentalPlatform" is experimental');
|
|
|
+ CheckResolverHint(mtWarning,nSymbolXIsNotPortable,'Symbol "TExperimentalPlatform" is not portable');
|
|
|
CheckResolverUnexpectedHints;
|
|
|
end;
|
|
|
|
|
@@ -17288,6 +17293,26 @@ begin
|
|
|
CheckResolverUnexpectedHints(true);
|
|
|
end;
|
|
|
|
|
|
+procedure TTestResolver.TestHint_UsesHints;
|
|
|
+var
|
|
|
+ Src: String;
|
|
|
+begin
|
|
|
+ Src:='{$mode objfpc}';
|
|
|
+ Src+='unit unit2 experimental platform;'+LineEnding;
|
|
|
+ Src+='interface'+LineEnding;
|
|
|
+ Src+='implementation'+LineEnding;
|
|
|
+ Src+='end.'+LineEnding;
|
|
|
+ AddModuleWithSrc('unit2',Src);
|
|
|
+
|
|
|
+ StartProgram(true);
|
|
|
+ Add([
|
|
|
+ 'uses unit2;',
|
|
|
+ 'begin']);
|
|
|
+ ParseProgram;
|
|
|
+ CheckResolverHint(mtWarning,nSymbolXIsExperimental,'Symbol "unit2" is experimental');
|
|
|
+ CheckResolverHint(mtWarning,nSymbolXIsNotPortable,'Symbol "unit2" is not portable');
|
|
|
+end;
|
|
|
+
|
|
|
procedure TTestResolver.TestHint_Garbage;
|
|
|
begin
|
|
|
StartProgram(false);
|