@@ -28,7 +28,7 @@ import * as storageModule from './module';
28
28
import * as storageModuleContent from './module_content' ;
29
29
import * as storageNames from './names' ;
30
30
import * 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' ;
32
32
33
33
export const NO_VERSION = '0.0.0' ;
34
34
export const CURRENT_VERSION = '0.0.3' ;
@@ -121,17 +121,10 @@ async function upgradeFrom_002_to_003(
121
121
try {
122
122
Blockly . serialization . workspaces . load ( blocks , headlessWorkspace ) ;
123
123
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
+ } ) ;
135
128
blocks = Blockly . serialization . workspaces . save ( headlessWorkspace ) ;
136
129
} finally {
137
130
headlessWorkspace . dispose ( ) ;
0 commit comments