Changeset 337 in dev for trunk/abdev


Ignore:
Timestamp:
Sep 29, 2007, 1:21:08 PM (17 years ago)
Author:
dai_9181
Message:

デリゲートにエラーチェックを仕込んだ

Location:
trunk/abdev
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/abdev/BasicCompiler32/Compile_Func.cpp

    r336 r337  
    393393        pUserProc=OverloadSolution( name, subs, *pBaseParams, Type() );
    394394
     395        if( isCallOn )
     396        {
     397            // コード生成を伴う場合はエラーチェックを行う
     398            if( !pUserProc->Params().Equals( *pBaseParams )
     399                || !pUserProc->ReturnType().Equals( baseType.GetClass().GetDelegate().ReturnType() ) )
     400            {
     401                if( baseType.IsDelegate() )
     402                {
     403                    SetError(67, name, cp );
     404                }
     405                else
     406                {
     407                    SetError(66, name, cp );
     408                }
     409            }
     410        }
     411
    395412        if(!pUserProc){
    396413            SetError(27,name,cp);
  • trunk/abdev/BasicCompiler_Common/error.cpp

    r318 r337  
    162162    if(num==64) sprintf(msg,"\"%s\" 無効な名前空間です。",tempKeyWord);
    163163    if(num==65) sprintf(msg,"ローカル領域で%sは使用できません。",tempKeyWord);
     164    if(num==66) sprintf(msg,"%s 要求されている関数ポインタのパラメータまたは戻り値が一致しません。", tempKeyWord );
     165    if(num==67) sprintf(msg,"%s 要求されているデリゲートのパラメータまたは戻り値が一致しません。", tempKeyWord );
    164166
    165167
Note: See TracChangeset for help on using the changeset viewer.