@@ -28,7 +28,7 @@ import * as storageModule from './module';
2828import * as storageModuleContent from './module_content' ;
2929import * as storageNames from './names' ;
3030import * as storageProject from './project' ;
31- import { ClassMethodDefBlock , Parameter , BLOCK_NAME as MRC_CLASS_METHOD_DEF_BLOCK_NAME } from '../blocks/mrc_class_method_def' ;
31+ import { ClassMethodDefBlock , BLOCK_NAME as MRC_CLASS_METHOD_DEF_BLOCK_NAME } from '../blocks/mrc_class_method_def' ;
3232
3333export const NO_VERSION = '0.0.0' ;
3434export const CURRENT_VERSION = '0.0.3' ;
@@ -121,17 +121,10 @@ async function upgradeFrom_002_to_003(
121121 try {
122122 Blockly . serialization . workspaces . load ( blocks , headlessWorkspace ) ;
123123
124- // Find and modify init method blocks to remove robot parameter
125- const allBlocks = headlessWorkspace . getAllBlocks ( ) ;
126- for ( const block of allBlocks ) {
127- if ( block . type === MRC_CLASS_METHOD_DEF_BLOCK_NAME &&
128- block . getFieldValue ( 'NAME' ) === 'init' ) {
129- // Remove robot parameter from init method
130- const methodBlock = block as ClassMethodDefBlock ;
131- let filteredParams : Parameter [ ] = methodBlock . mrcParameters . filter ( param => param . name !== 'robot' ) ;
132- methodBlock . mrcParameters = filteredParams ;
133- }
134- }
124+ // Method blocks need to be upgraded
125+ headlessWorkspace . getBlocksByType ( MRC_CLASS_METHOD_DEF_BLOCK_NAME , false ) . forEach ( block => {
126+ ( block as ClassMethodDefBlock ) . upgrade_002_to_003 ( ) ;
127+ } ) ;
135128 blocks = Blockly . serialization . workspaces . save ( headlessWorkspace ) ;
136129 } finally {
137130 headlessWorkspace . dispose ( ) ;
0 commit comments